body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--pix-dark:#0d1117;--pix-dark-2:#161b22;--pix-dark-3:#1c2128;--pix-dark-4:#21262d;--pix-border:#ffffff14;--pix-amber:#f5a623;--pix-amber-dim:#f5a62326;--pix-amber-glow:#f5a62340;--pix-text:#e6edf3;--pix-text-dim:#8b949e;--pix-radius:16px;--pix-shadow:0 24px 64px #0009,0 8px 24px #0006;--pix-panel-w:380px;--pix-panel-h:560px}.pix-fab{align-items:center;background:#161b22;background:var(--pix-dark-2);border:none;border-radius:50%;bottom:65px;box-shadow:0 4px 24px #f5a62359,0 2px 8px #00000080;cursor:pointer;display:flex;height:58px;justify-content:center;outline:2px solid #f5a6234d;overflow:visible;position:fixed;right:28px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;width:58px;z-index:9998}.pix-fab:hover{box-shadow:0 6px 32px #f5a62380,0 2px 8px #00000080;outline-color:#f5a62399;transform:scale(1.1)}.pix-fab-open{background:#1c2128;background:var(--pix-dark-3);transform:rotate(0deg)}.pix-fab-img{border-radius:50%;height:36px;object-fit:contain;width:36px}.pix-fab-close{color:#8b949e;color:var(--pix-text-dim);font-size:18px;font-weight:300;line-height:1}.pix-fab-pulse{animation:pix-pulse 2.4s ease-out infinite;border:2px solid #f5a623;border:2px solid var(--pix-amber);border-radius:50%;inset:-4px;pointer-events:none;position:absolute}@keyframes pix-pulse{0%{opacity:.7;transform:scale(1)}70%{opacity:0;transform:scale(1.5)}to{opacity:0;transform:scale(1.5)}}.pix-panel{animation:pix-slide-up .3s cubic-bezier(.34,1.3,.64,1);background:#0d1117;background:var(--pix-dark);border:1px solid #ffffff14;border:1px solid var(--pix-border);border-radius:16px;border-radius:var(--pix-radius);bottom:98px;box-shadow:0 24px 64px #0009,0 8px 24px #0006;box-shadow:var(--pix-shadow);display:flex;flex-direction:column;height:560px;height:var(--pix-panel-h);overflow:hidden;position:fixed;right:28px;width:380px;width:var(--pix-panel-w);z-index:9997}@keyframes pix-slide-up{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.pix-header{background:#161b22;background:var(--pix-dark-2);border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--pix-border);flex-shrink:0;overflow:hidden;position:relative}.pix-header-grid{background-image:linear-gradient(#f5a6230a 1px,#0000 0),linear-gradient(90deg,#f5a6230a 1px,#0000 0);background-size:20px 20px;inset:0;pointer-events:none;position:absolute}.pix-header-content{align-items:center;display:flex;gap:12px;padding:14px 16px;position:relative}.pix-header-avatar{flex-shrink:0;position:relative}.pix-header-avatar img{background:#1c2128;background:var(--pix-dark-3);border:2px solid #f5a623;border:2px solid var(--pix-amber);border-radius:50%;height:40px;object-fit:contain;padding:2px;width:40px}.pix-online-dot{background:#3fb950;border:2px solid #161b22;border:2px solid var(--pix-dark-2);border-radius:50%;bottom:1px;height:10px;position:absolute;right:1px;width:10px}.pix-header-info{flex:1 1;min-width:0}.pix-header-info h4{color:#f5a623;color:var(--pix-amber);font-size:14px;font-weight:700;letter-spacing:.3px;margin:0}.pix-header-info span{color:#8b949e;color:var(--pix-text-dim);display:block;font-size:11px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pix-header-actions{display:flex;gap:4px}.pix-icon-btn{align-items:center;background:#0000;border:none;border-radius:6px;color:#8b949e;color:var(--pix-text-dim);cursor:pointer;display:flex;font-size:13px;height:28px;justify-content:center;transition:background .15s,color .15s;width:28px}.pix-icon-btn:hover{background:#ffffff12;color:#e6edf3;color:var(--pix-text)}.pix-messages{display:flex;flex:1 1;flex-direction:column;gap:14px;overflow-y:auto;padding:16px 14px 8px;scroll-behavior:smooth}.pix-messages::-webkit-scrollbar{width:4px}.pix-messages::-webkit-scrollbar-track{background:#0000}.pix-messages::-webkit-scrollbar-thumb{background:#f5a62333;border-radius:4px}.pix-messages::-webkit-scrollbar-thumb:hover{background:#f5a62366}.pix-message{align-items:flex-end;animation:pix-msg-in .22s ease-out;display:flex;gap:8px}@keyframes pix-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pix-message-user{flex-direction:row-reverse}.pix-message-prof{flex-direction:row}.pix-msg-avatar img{background:#1c2128;background:var(--pix-dark-3);border:1px solid #f5a623;border:1px solid var(--pix-amber);border-radius:50%;flex-shrink:0;height:28px;object-fit:contain;padding:1px;width:28px}.pix-bubble{border-radius:14px;max-width:78%;padding:10px 13px;position:relative}.pix-bubble-prof{background:#1c2128;background:var(--pix-dark-3);border:1px solid #ffffff14;border:1px solid var(--pix-border);border-bottom-left-radius:4px}.pix-bubble-user{background:linear-gradient(135deg,#b45309,#f5a623);background:linear-gradient(135deg,#b45309,var(--pix-amber));border-bottom-right-radius:4px}.pix-bubble-text{color:#e6edf3;color:var(--pix-text);font-size:13.5px;line-height:1.55;margin:0 0 4px;white-space:pre-wrap;word-break:break-word}.pix-bubble-user .pix-bubble-text{color:#1a0a00;font-weight:500}.pix-bubble-time{color:#8b949e;color:var(--pix-text-dim);display:block;font-size:10px;text-align:right}.pix-bubble-user .pix-bubble-time{color:#1a0a008c}.pix-typing{align-items:flex-end;animation:pix-msg-in .22s ease-out;display:flex;gap:8px}.pix-typing-avatar img{border:1px solid #f5a623;border:1px solid var(--pix-amber);border-radius:50%;height:28px;object-fit:contain;padding:1px;width:28px}.pix-typing-avatar img,.pix-typing-dots{background:#1c2128;background:var(--pix-dark-3)}.pix-typing-dots{align-items:center;border:1px solid #ffffff14;border:1px solid var(--pix-border);border-radius:14px;border-bottom-left-radius:4px;display:flex;gap:5px;padding:12px 16px}.pix-typing-dots span{animation:pix-dot 1.2s ease-in-out infinite;background:#f5a623;background:var(--pix-amber);border-radius:50%;height:7px;opacity:.4;width:7px}.pix-typing-dots span:nth-child(2){animation-delay:.2s}.pix-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes pix-dot{0%,80%,to{opacity:.4;transform:scale(1)}40%{opacity:1;transform:scale(1.3)}}.pix-suggested{background:#161b22;background:var(--pix-dark-2);border:1px solid #ffffff14;border:1px solid var(--pix-border);border-radius:12px;margin-top:4px;padding:12px}.pix-suggested-label{color:#f5a623;color:var(--pix-amber);font-size:10px;font-weight:700;letter-spacing:.8px;margin:0 0 8px;text-transform:uppercase}.pix-suggested-grid{display:flex;flex-direction:column;gap:6px}.pix-suggested-btn{background:#1c2128;background:var(--pix-dark-3);border:1px solid #ffffff14;border:1px solid var(--pix-border);border-radius:8px;color:#8b949e;color:var(--pix-text-dim);cursor:pointer;font-size:12px;line-height:1.4;padding:8px 11px;text-align:left;transition:all .15s ease}.pix-suggested-btn:hover{background:#f5a62326;background:var(--pix-amber-dim);border-color:#f5a6234d;color:#f5a623;color:var(--pix-amber);transform:translateX(3px)}.pix-input-area{background:#161b22;background:var(--pix-dark-2);border-top:1px solid #ffffff14;border-top:1px solid var(--pix-border);flex-shrink:0;padding:10px 12px 12px}.pix-input-row{align-items:flex-end;background:#1c2128;background:var(--pix-dark-3);border:1px solid #ffffff14;border:1px solid var(--pix-border);border-radius:12px;display:flex;gap:8px;padding:8px 8px 8px 12px;transition:border-color .2s}.pix-input-row:focus-within{border-color:#f5a62366;box-shadow:0 0 0 3px #f5a62326;box-shadow:0 0 0 3px var(--pix-amber-dim)}.pix-input{background:#0000;border:none;color:#e6edf3;color:var(--pix-text);flex:1 1;font-family:inherit;font-size:13.5px;line-height:1.5;max-height:100px;outline:none;padding:0;resize:none}.pix-input::placeholder{color:#8b949e;color:var(--pix-text-dim);font-style:italic}.pix-send-btn{align-items:center;background:#f5a623;background:var(--pix-amber);border:none;border-radius:8px;color:#1a0a00;cursor:pointer;display:flex;flex-shrink:0;height:34px;justify-content:center;transition:all .2s ease;width:34px}.pix-send-btn svg{height:16px;width:16px}.pix-send-btn:hover:not(:disabled){background:#ffb733;box-shadow:0 2px 12px #f5a62366;transform:scale(1.05)}.pix-send-btn:disabled{cursor:not-allowed;opacity:.35}.pix-disclaimer{color:#8b949e;color:var(--pix-text-dim);font-size:10px;margin:6px 0 0;opacity:.6;text-align:center}@media (max-width:480px){:root{--pix-panel-w:calc(100vw - 24px);--pix-panel-h:70vh}.pix-panel{bottom:88px;right:12px}.pix-fab{bottom:20px;right:16px}}.pix-tts-controls{align-items:center;display:flex;gap:2px}.pix-tts-btn{background:none;border:none;border-radius:4px;cursor:pointer;font-size:13px;line-height:1;opacity:.55;padding:2px 4px;transition:opacity .2s,transform .1s}.pix-tts-btn:hover{opacity:1;transform:scale(1.1)}.pix-tts-btn--active{color:#60a5fa;opacity:.9}.pix-tts-btn--stop{opacity:.55}.pix-tts-btn--stop:hover{color:#f87171;opacity:1}.login-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;overflow:hidden;padding:20px;position:relative}.background-gradient{animation:gradientShift 15s ease infinite;background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);background-size:400% 400%;height:100%;left:0;position:absolute;top:0;width:100%;z-index:0}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.floating-shapes{height:100%;overflow:hidden;position:absolute;width:100%;z-index:1}.shape{animation:float 20s ease-in-out infinite;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:50%;position:absolute}.shape-1{animation-delay:0s;height:300px;left:-100px;top:-150px;width:300px}.shape-2{animation-delay:3s;height:200px;right:-50px;top:50%;width:200px}.shape-3{animation-delay:6s;bottom:-50px;height:150px;left:30%;width:150px}.shape-4{animation-delay:9s;bottom:10%;height:250px;right:20%;width:250px}.login-card{animation:slideUp .8s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:30px;box-shadow:0 20px 60px #0000004d;max-width:450px;padding:50px 40px;position:relative;width:100%;z-index:10}.logo-section{align-items:center;animation:fadeIn 1s ease-out .3s both;display:flex;flex-direction:column;gap:20px;margin-bottom:30px}.owner-logo{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));height:100px;object-fit:contain;transition:transform .3s ease;width:100px}.owner-logo:hover{transform:scale(1.05) rotate(5deg)}.main-logo{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1));height:auto;object-fit:contain;transition:transform .3s ease;width:200px}.main-logo:hover{transform:scale(1.05)}.welcome-section{animation:fadeIn 1s ease-out .5s both;margin-bottom:35px;text-align:center}.welcome-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#2d3748;font-size:2rem;font-weight:700;margin:0 0 10px}.welcome-subtitle{color:#718096;font-size:1rem;font-weight:400;margin:0}.login-button-wrapper{animation:fadeIn 1s ease-out .7s both;display:flex;justify-content:center;margin-bottom:30px}.login-button-wrapper>div{display:flex;justify-content:center;width:100%}.loading-spinner{align-items:center;display:flex;flex-direction:column;gap:15px;padding:20px}.spinner{animation:spin 1s linear infinite;border:4px solid #667eea33;border-radius:50%;border-top-color:#667eea;height:40px;width:40px}.loading-spinner p{color:#667eea;font-weight:600;margin:0}.features-section{grid-gap:20px;animation:fadeIn 1s ease-out .9s both;border-top:1px solid #e2e8f0;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);margin-top:30px;padding-top:30px}.feature-item{align-items:center;display:flex;flex-direction:column;gap:8px;text-align:center}.feature-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));font-size:1.5rem}.feature-text{color:#4a5568;font-size:.75rem;font-weight:500}.login-footer{animation:fadeIn 1s ease-out 1.1s both;bottom:20px;position:absolute;text-align:center;z-index:10}.login-footer p{color:#ffffffe6;font-size:.75rem;margin:0;text-shadow:0 2px 4px #0000004d}.error-message{background-color:#fee;border:1px solid #fcc;color:#c33;gap:8px;margin-bottom:16px;padding:12px 16px}@media (max-width:768px){.login-card{border-radius:20px;padding:40px 30px}.welcome-title{font-size:1.75rem}.main-logo{width:160px}.owner-logo{height:80px;width:80px}.features-section{gap:15px}.feature-text{font-size:.7rem}}@media (max-width:480px){.login-card{padding:30px 20px}.welcome-title{font-size:1.5rem}.welcome-subtitle{font-size:.9rem}.features-section{gap:12px;grid-template-columns:1fr}.feature-item{flex-direction:row;gap:10px;justify-content:center}.main-logo{width:140px}.owner-logo{height:70px;width:70px}}.google-login-button{align-items:center;background:#fff;border:1px solid #dadce0;border-radius:24px;box-shadow:0 1px 3px #0000001a;color:#3c4043;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:12px;justify-content:center;padding:12px 24px;transition:all .3s ease;width:300px}.google-login-button:hover{background:#f8f9fa;box-shadow:0 2px 8px #00000026;transform:translateY(-1px)}.google-icon{height:20px;width:20px}.oauth-buttons{flex-direction:column;max-width:320px}.oauth-button,.oauth-buttons{display:flex;gap:12px;width:100%}.oauth-button{align-items:center;background:#fff;border:1px solid #dadce0;border-radius:8px;box-shadow:0 1px 3px #0000001a;color:#3c4043;cursor:pointer;font-size:15px;font-weight:500;justify-content:center;padding:12px 24px;transition:all .3s ease}.oauth-button:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.oauth-button:active{transform:translateY(0)}.oauth-icon{flex-shrink:0;height:20px;width:20px}.google-button:hover{background:#f8f9fa;border-color:#4285f4}.microsoft-button:hover{background:#f3f2f1;border-color:#0078d4}.github-button{background:#24292e;border-color:#24292e;color:#fff}.github-button:hover{background:#1a1e22;border-color:#1a1e22}.github-button .oauth-icon{color:#fff}@media (max-width:480px){.oauth-buttons{max-width:100%}.oauth-button{font-size:14px;padding:10px 20px}}.tab-layout{display:flex;flex-direction:column;min-height:100vh}.tab-content{flex:1 1;overflow-y:auto;padding:20px}.tab-bar{background-color:#fff;border-top:1px solid #ccc;bottom:0;height:60px;justify-content:space-around;left:0;position:fixed;right:0;z-index:100}.tab-bar,.tab-link{align-items:center;display:flex}.tab-link{color:#333;flex-direction:column;font-size:14px;text-decoration:none}.cart-badge{animation:pulse 1s ease-in-out infinite;background-color:#e71029;border-radius:9px;color:#fff;font-size:11px;font-weight:700;height:18px;justify-content:center;position:absolute;right:-16px;top:-10px;width:18px}.cart-badge,.header-side{align-items:center;display:flex}.header-side{gap:10px}.header-side h3{color:#fff;flex-grow:1;font-size:1rem;font-weight:600;margin-bottom:0}.header-side p{color:#f9fafb;font-size:.7rem;font-weight:600;margin-left:10px}.header-button{align-items:center;background:none;border:none;cursor:pointer;display:flex;justify-content:center;padding:0;transition:transform .2s ease}.header-button:hover{transform:scale(1.1)}@media (max-width:768px){.header-button:hover{transform:scale(1.05)}}.header-photo{border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;height:40px;object-fit:cover;width:40px}@media (max-width:480px){.header-photo{height:36px;width:36px}}.header-back-button{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;font-weight:700;height:40px;justify-content:center;transition:all .3s ease;width:40px}.header-back-button:hover{background:#ffffff4d;transform:translateX(-2px)}@media (max-width:480px){.header-back-button{font-size:20px;height:36px;width:36px}}.icon-wrapper{display:inline-block;position:relative}.icon-button{align-items:center;background:#ffffff1a;border:none;border-radius:50%;cursor:pointer;display:flex;height:40px;justify-content:center;padding:8px;transition:all .3s ease;width:40px}.icon-button:hover{background:#fff3;transform:scale(1.1)}@media (max-width:768px){.icon-button{height:38px;padding:7px;width:38px}.icon-button:hover{transform:scale(1.05)}}@media (max-width:480px){.icon-button{height:36px;padding:6px;width:36px}}.sharedHeader-badge{align-items:center;animation:pulse-badge 2s infinite;background:linear-gradient(135deg,#f44336,#e91e63);border-radius:50%;box-shadow:0 2px 4px #0000004d;color:#fff;display:flex;font-size:11px;font-weight:700;height:20px;justify-content:center;min-width:20px;padding:0 4px;position:absolute;right:-4px;top:-4px}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (max-width:480px){.sharedHeader-badge{font-size:10px;height:18px;min-width:18px}}.modal-content{animation:slideUp .3s;max-height:90vh;max-width:450px;padding:30px}.modal-content h2{color:#1a202c;font-size:22px;margin:0 0 10px;text-align:center}.modal-description{color:#4a5568;font-size:14px;margin-bottom:20px;text-align:center}.qr-image{border:4px solid #f7fafc;border-radius:8px;height:200px;width:200px}.modal-content form{display:flex;flex-direction:column;gap:15px}.modal-content label{color:#2d3748;font-size:14px;font-weight:600;text-align:center}.code-input{border-radius:8px;font-size:24px;letter-spacing:6px;padding:12px}.error-text{background:#fff5f5;border-radius:6px;color:#e53e3e;font-size:14px;padding:8px;text-align:center}.backup-codes-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr);margin:20px 0}.backup-code-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;font-family:monospace;font-size:14px;font-weight:600;padding:10px;text-align:center}.modal-actions{flex-direction:column}.modal-btn{border:none;border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;padding:12px 20px;transition:all .2s}.modal-btn.primary{background:#667eea;color:#fff}.modal-btn.primary:hover:not(:disabled){background:#5a67d8}.modal-btn.secondary{background:#f7fafc;border:1px solid #e2e8f0;color:#4a5568}.modal-btn.secondary:hover{background:#edf2f7}.modal-btn:disabled{cursor:not-allowed;opacity:.5}.spinner-large{animation:spin 1s linear infinite;border:6px solid #f3f4f6;border-radius:50%;border-top-color:#667eea;height:60px;margin:0 auto;width:60px}.generating-text{font-size:14px;margin-top:10px}.generating-text,.qr-hint{color:#718096;text-align:center}.qr-hint{font-size:12px;margin-top:8px}.qr-container{flex-direction:column;margin:20px 0;min-height:240px}.custom-alert-overlay,.qr-container{align-items:center;display:flex;justify-content:center}.custom-alert-overlay{animation:fadeIn .3s ease;background-color:#000000b3;bottom:0;left:0;position:fixed;right:0;top:0;z-index:2000}.custom-alert-box{animation:slideUp .3s ease;background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000004d;max-width:450px;overflow:hidden;width:90%}@media (max-width:480px){.custom-alert-box{max-width:95%}}.custom-alert-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:10px}@media (max-width:480px){.custom-alert-header{padding:10px}}.custom-alert-header-content{align-items:center;display:flex;gap:15px}.custom-alert-icon-container{align-items:center;border-radius:50%;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}@media (max-width:480px){.custom-alert-icon-container{height:35px;width:35px}}.custom-alert-icon{font-size:28px}@media (max-width:480px){.custom-alert-icon{font-size:24px}}.custom-alert-title{font-size:22px;font-weight:700;margin:0}@media (max-width:480px){.custom-alert-title{font-size:18px}}.custom-alert-content{padding:20px 25px}@media (max-width:480px){.custom-alert-content{padding:20px}}.custom-alert-message{color:#4a5568;font-size:16px;line-height:1.6;margin:0;text-align:center}@media (max-width:480px){.custom-alert-message{font-size:15px}}.custom-alert-buttons{display:flex;gap:12px;padding:0 25px 25px}@media (max-width:480px){.custom-alert-buttons{gap:10px;padding:0 20px 20px}}.custom-alert-button{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:14px 20px;transition:all .3s ease}.custom-alert-button:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.custom-alert-button:active{transform:translateY(0)}@media (max-width:480px){.custom-alert-button{font-size:14px;padding:12px 16px}.custom-alert-button:hover{transform:translateY(-1px)}}.custom-alert-button.close{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}body,html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;height:100%;margin:0;overflow:hidden;padding:0}.main-container{background:linear-gradient(180deg,#6ca9e6 0,#1a79d8);bottom:0;height:100vh;justify-content:center;left:0;position:fixed;right:0;top:0}.main-container,.main-content{display:flex;flex-direction:column;overflow:hidden}.main-content{align-items:center;background:linear-gradient(180deg,#f8f9fa 0,#e9ecef);box-sizing:border-box;min-height:100vh;position:relative}.dashboard-overview{max-height:calc(100vh - 200px);overflow-y:auto;padding:0 20px;width:100%}@media (max-width:768px){.dashboard-overview{padding:0 15px}}@media (max-width:480px){.dashboard-overview{padding:0 10px}}.header-row{background-color:#3483c5;color:#fff;height:60px;justify-content:space-between;padding:0 20px;width:100%;z-index:10}.header-container,.header-row{align-items:center;display:flex}.header-container{padding-left:20px}.headerMiddle{align-items:center;display:flex;flex:1 1;justify-content:center}.header-logo{height:42px;object-fit:contain}.page-title{align-items:center;display:flex;flex-direction:column;flex-shrink:0;font-size:14px;font-weight:600;justify-content:center;margin-bottom:5px;width:100%}.page-title h2{color:#2d3748;flex-grow:1;font-size:1.15rem;font-weight:700;margin-bottom:5px;margin-top:5px}.page-subtitle{color:#6b7280;font-size:18px;margin-top:10px}@media (max-width:768px){.page-title h2{font-size:1rem;font-weight:600}}@media (max-width:480px){.page-title h2{font-size:.7rem;font-weight:600}}.page-title h3{color:#2d3748;flex-grow:1;font-size:1rem;font-weight:600;margin-bottom:5px;margin-top:5px}@media (max-width:768px){.page-title h3{font-size:.8rem;font-weight:600}}@media (max-width:480px){.page-title h3{font-size:.6rem;font-weight:500}}.page-title p{font-size:11px;font-weight:600;margin-top:0}.top-tab-container{display:flex;gap:10px;margin-bottom:5px;padding:5px 20px;width:100%}.tab-button{background:#f0f0f0;border:2px solid #0000;border-radius:10px;color:#333;cursor:pointer;flex:1 1;font-size:13px;font-weight:600;padding:10px 20px;transition:all .3s ease}.tab-button:hover{background:#e0e0e0;transform:translateY(-2px)}.active-tab{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#5568d3;color:#fff}.search-container{background:#fff;padding:5px 20px;width:100%}.dropdown{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:15px;height:35px;margin:10px;padding:5px;transition:border-color .3s;width:90%}.dropdown:focus{border-color:#667eea;outline:none}.loader{border:4px solid #ccc;border-top-color:#667eea;margin:20px auto}.loading-container{align-items:center;color:#666;display:flex;justify-content:center;padding:40px}.scrollable-list{animation:slideUp .4s ease-out;display:flex;flex-wrap:wrap;gap:20px;justify-content:center;max-height:none;overflow-x:hidden;overflow-y:visible;width:100%}@media (max-width:768px){.scrollable-list{justify-content:center}}.scrollable-content{animation:slideUp .4s ease-out;gap:20px;justify-content:center;max-height:none;overflow-x:hidden;overflow-y:auto;width:100%}.general-card{width:80%}.general-card,.general-small-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;flex-direction:column;margin:15px 0;overflow:hidden;padding:20px;position:relative;transition:all .3s ease}@media (max-width:768px){.general-card,.general-small-card{width:220px}}@media (max-width:480px){.general-card,.general-small-card{width:200px}}.general-card:hover,.general-small-card:hover{box-shadow:0 5px 15px #00000026;transform:translateY(-5px)}.general-card.new-card,.general-small-card.new-card{background:linear-gradient(180deg,#fff 0,#f0f4ff);border:2px solid #667eea}.general-card-info{text-align:center}.general-card-info h3{color:#333;font-size:18px;font-weight:600;margin:10px 0 5px}.expertise{color:#667eea;font-size:14px;font-weight:500;margin:5px 0}.message-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;flex-direction:column;margin:15px 0;max-height:200px;overflow:hidden;padding:20px;position:relative;transition:all .3s ease;width:250px}@media (max-width:768px){.message-card{width:220px}}@media (max-width:480px){.message-card{width:200px}}.message-card:hover{box-shadow:0 5px 15px #00000026;transform:translateY(-5px)}.message-card.new-card{background:linear-gradient(180deg,#fff 0,#f0f4ff);border:2px solid #667eea}.message-card-info{text-align:center}.message-card-info h3{color:#333;font-size:18px;font-weight:600;margin:10px 0 5px}.message-card-title{-webkit-line-clamp:2;color:#111827;font-size:18px;font-weight:700;line-height:1.4;margin-bottom:2px;margin-top:0}.message-card-description,.message-card-title{-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.message-card-description{-webkit-line-clamp:3;color:#6b7280;flex-grow:1;font-size:14px;line-height:1.6;margin-bottom:10px}.message-card-meta{border-bottom:1px solid #e5e7eb;border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:10px;margin-bottom:15px;padding:15px 0}.meta-icon{font-size:16px}.message-card-footer{align-items:center;display:flex;gap:10px;justify-content:space-between}.badge-container{display:flex;justify-content:flex-end;position:absolute;top:2px;width:auto;z-index:1}.unread-badge{background:linear-gradient(135deg,#f44336,#e91e63);box-shadow:0 2px 4px #f4433666;top:10px}.new-badge,.unread-badge{border-radius:12px;padding:4px 8px;position:absolute;right:10px}.new-badge{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 4px #667eea66;color:#fff;font-size:8px;font-weight:600;top:35px}.avatar{border:3px solid #667eea;border-radius:50%;height:80px;margin-bottom:10px;margin-top:10px;object-fit:cover;width:80px}.no-items{color:#999;padding:60px 20px;text-align:center}.no-items p{font-size:1rem;margin-bottom:20px}@media (max-width:768px){.no-items{padding:50px 15px}.no-items p{font-size:.95rem;margin-bottom:15px}}@media (max-width:480px){.no-items{padding:40px 10px}.no-items p{font-size:.9rem;margin-bottom:12px}}.modal-overlay{align-items:center;animation:fadeIn .3s ease;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:900}.modal-content,.modal-content-top{animation:slideUpModal .3s ease;background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a;display:flex;max-height:80vh;overflow:hidden;overflow-y:auto;width:90%}.modal-content-top{flex-direction:column}.modal-content-medium{max-width:700px;width:90%}@media (max-width:768px){.modal-content{max-width:700px}}@media (max-width:480px){.modal-content{max-height:95vh}}.modal-content-large{max-width:1000px;width:95%}@media (max-width:768px){.modal-content-large{max-width:90%}}@media (max-width:480px){.modal-content-large{border-radius:0;margin:0;max-width:100%;width:100%}}.modal-header{flex-direction:column;max-width:25%;padding:20px 25px}.modal-header,.modal-header-top{border-bottom:2px solid #e9ecef;gap:10px}.modal-header-top{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:10px 25px}.modal-header h2{color:#fff;font-size:18px;font-weight:600}.modal-header-actions{align-items:center;display:flex;gap:12px}@media (max-width:768px){.modal-header{padding:15px}.modal-header-actions{gap:8px}}@media (max-width:480px){.modal-header{padding:12px 15px}}.modal-info-group{align-items:center;display:flex;gap:20px;min-width:0;width:100%}@media (max-width:768px){.modal-info-group{gap:12px}.modal-header{padding:16px 20px}.modal-header h2{font-size:20px}}.modal-header-title{display:flex;flex:1 1;margin:0}.modal-header-title h3{color:#fff;flex:1 1;font-size:1.3rem;font-weight:700;margin-bottom:10px;margin-top:0}@media (max-width:480px){.modal-header-title h3{font-size:1.1rem;font-weight:600}}.modal-actions-group{align-items:center;display:flex;flex-shrink:0;gap:10px;justify-content:flex-end;margin-bottom:10px}.modal-close-btn{align-items:center;background:#fff3;border-radius:50%;display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.modal-close-btn:hover{background:#ef4444;color:#fff;transform:rotate(90deg)}.modal-general-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.modal-general-btn:hover{filter:brightness(1.2);transform:scale(1.04)}.modal-general-btn:active{transform:scale(.96)}.modal-body{padding:20px}@media (max-width:768px){.modal-body{padding:15px}}@media (max-width:480px){.modal-body{padding:15px}}.info-stats{grid-gap:20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));justify-content:space-around;margin-bottom:20px;padding:15px}@media (max-width:768px){.info-stats{gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.info-item{align-items:center;background:#fff;border-left:none;border-radius:8px;color:#4a5568;display:flex;font-size:.95rem;justify-content:space-between;margin:10px 0;padding:15px}.info-item strong{color:#2d3748;margin-right:8px}.info-icon{display:block;font-size:32px;margin-bottom:8px}.stats-grid{grid-gap:15px;animation:slideUp .4s ease-out;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px;width:90%}@media (max-width:768px){.stats-grid{gap:14px;grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.stats-grid{gap:12px;grid-template-columns:1fr}}.stat-card{border-radius:12px;box-shadow:0 2px 8px #0000001a;gap:15px;padding:15px;transition:all .3s ease}.stat-card:hover{box-shadow:0 5px 15px #00000026;transform:translateY(-3px)}@media (max-width:768px){.stat-card{gap:12px;padding:15px}}@media (max-width:480px){.stat-card{gap:10px;padding:12px}}.stat-card.clickable{cursor:pointer;transition:transform .2s,box-shadow .2s}.stat-card.clickable:hover{box-shadow:0 6px 16px #0000001a;transform:translateY(-4px)}.stat-card.clickable:active{transform:translateY(-2px)}.content-details{background:#f9fafb;border-radius:8px;margin-top:30px;padding:20px}.content-item-card{border:1px solid #e5e7eb;border-radius:6px;margin-bottom:15px;padding:15px}.stat-icon{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;display:flex;flex-shrink:0;font-size:2rem;height:40px;justify-content:center;width:40px}.stat-icon p{color:#2d3748;font-size:1rem;font-weight:600;line-height:1;margin:0}@media (max-width:768px){.stat-icon{font-size:1.8rem;height:45px;width:45px}}@media (max-width:480px){.stat-icon{font-size:1.6rem;height:40px;width:40px}}.stat-info{flex:1 1;min-width:0}.stat-info h3{color:#2d3748;font-size:1.1rem;font-weight:600;line-height:1}.stat-info p{color:#718096;font-size:.95rem;margin:5px 0 0}@media (max-width:768px){.stat-info h3{font-size:1.4rem}.stat-info p{font-size:.85rem}}@media (max-width:480px){.stat-info h3{font-size:1.25rem}.stat-info p{font-size:.8rem}}.action-buttons{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 6px #0000001a;color:#fff;gap:20px;justify-content:space-around;margin-bottom:20px;padding:15px;width:90%}@media (max-width:480px){.action-buttons{gap:15px}}.general-btn{align-items:center;border:2px solid #0000;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:16px;transition:all .3s ease}.primary-btn{background:#f0f0f0;border-color:#5568d3;color:#333}.primary-btn:hover{background:#5a5ae3}.secondary-btn{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#5568d3;color:#fff}.primary-btn:hover{background:#b3b3eb;transform:translateY(-2px)}.btn-icon{font-size:20px}.profile-toggle{border-radius:10px;color:#0a0909;cursor:pointer;font-weight:600;padding:5px;transition:all .3s}.profile-toggle:hover{box-shadow:0 4px 8px #667eea4d;transform:translateY(-2px)}.session-info{background:#f8f9fa;margin-bottom:20px;padding:15px}.summary-item{background:#fff;border-left:4px solid #667eea;border-radius:8px;color:#4a5568;font-size:.95rem;margin:10px 0;padding:12px}.summary-item strong{color:#2d3748;margin-right:8px}.conversation-container{margin-bottom:20px}.page-title-bar{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:15px;padding:10px}.page-title-bar h3{color:#2d3748;font-size:1.1rem;font-weight:600;margin:0}.page-title-bar h4{color:#2d3748;font-size:1.375rem;font-weight:700;margin:0}@media (max-width:768px){.page-title-bar h4{font-size:1.175rem}}@media (max-width:480px){.page-title-bar h4{font-size:1rem}}.sort-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .3s}@media (max-width:768px){.sort-button{font-size:14px;padding:8px}}@media (max-width:480px){.sort-button{font-size:12px;padding:5px}}.sort-button:hover{box-shadow:0 4px 8px #667eea4d;transform:translateY(-2px)}.message-scroll{background:#f9f9f9;border-radius:8px;max-height:350px;overflow-y:auto;padding:15px}.message-scroll::-webkit-scrollbar{width:8px}.message-scroll::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.message-scroll::-webkit-scrollbar-thumb{background:#888;border-radius:10px}.message-scroll::-webkit-scrollbar-thumb:hover{background:#555}.no-messages{color:#999;padding:40px 20px;text-align:center}.no-messages .hint{color:#bbb;font-size:14px;margin-top:10px}.notification-toast{border-radius:10px;gap:10px;max-width:400px;padding:15px 20px;top:80px;z-index:9999}.notification-icon{font-size:1.2rem}@media (max-width:768px){.notification-toast{font-size:.9rem;max-width:350px;padding:12px 18px;right:15px;top:70px}.notification-icon{font-size:1.1rem}}@media (max-width:480px){.notification-toast{font-size:.85rem;left:10px;max-width:none;padding:10px 15px;right:10px;top:100px}.notification-icon{font-size:1rem}}.recent-activity{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:20px;width:80%}.recent-activity h3{color:#2d3748;font-size:1rem;font-weight:600;margin-bottom:15px;margin-top:0}@media (max-width:768px){.recent-activity{margin-bottom:15px;padding:15px}.recent-activity h3{font-size:1.1rem;margin-bottom:12px}}@media (max-width:480px){.recent-activity{padding:12px}.recent-activity h3{font-size:1rem;margin-bottom:10px}}.activity-list{display:flex;flex-direction:column;gap:12px}@media (max-width:768px){.activity-list{gap:10px}}@media (max-width:480px){.activity-list{gap:8px}}.activity-item{align-items:center;background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;display:flex;gap:15px;padding:12px;transition:all .3s ease}.activity-item:hover{background:#e9ecef;transform:translateX(5px)}@media (max-width:768px){.activity-item{gap:12px;padding:10px}}@media (max-width:480px){.activity-item{align-items:flex-start;flex-direction:column;gap:8px;padding:10px}.activity-item:hover{transform:translateX(0)}}.activity-icon{align-items:center;background:#fff;border-radius:8px;display:flex;flex-shrink:0;font-size:1.5rem;height:40px;justify-content:center;width:40px}@media (max-width:768px){.activity-icon{font-size:1.3rem;height:35px;width:35px}}@media (max-width:480px){.activity-icon{font-size:1.2rem;height:32px;width:32px}}.activity-details{flex:1 1;min-width:0}.activity-details p{color:#2d3748;font-size:.9rem;line-height:1.4;margin:0}.activity-time{color:#718096;display:block;font-size:.8rem;margin-top:4px}@media (max-width:768px){.activity-details p{font-size:.9rem}.activity-time{font-size:.75rem}}@media (max-width:480px){.activity-details p{font-size:.85rem}.activity-time{font-size:.7rem;margin-top:2px}}.content-with-sidebar{align-items:flex-start;display:flex;flex:1 1;gap:20px;width:90%}@media (max-width:968px){.content-with-sidebar{flex-direction:column-reverse}}.content-left-column{display:flex;flex-direction:column;gap:20px;padding-right:10px}.course-overview-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px}@media (max-width:1024px){.course-overview-card{padding:20px}}@media (max-width:768px){.course-overview-card{padding:16px}}@media (max-width:480px){.course-overview-card{padding:14px}}.course-info-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:20px}@media (max-width:768px){.course-info-card{padding:16px}}@media (max-width:480px){.course-info-card{padding:14px}}.content-items-list{display:flex;flex-direction:column;gap:15px;width:90%}.sidebar-tab-container{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));height:-webkit-fit-content;height:fit-content;overflow-x:hidden;overflow-y:hidden;padding-bottom:10px;position:static;width:100%}@media (max-width:968px){.sidebar-tab-container{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));overflow-x:hidden;overflow-y:hidden;padding-bottom:10px;position:static;width:100%}}.main-content-area{animation:slideUp .4s ease-out;display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:60px;max-height:none;overflow-x:hidden;overflow-y:visible;width:100%}@media (max-width:968px){.main-content-area{flex:1 1;max-height:none}}.createprofile-modal-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.createprofile-modal-content{animation:slideUpModal .3s ease-out;background:#fff;border-radius:24px;max-width:400px;padding:40px;text-align:center;width:90%}@media (max-width:480px){.createprofile-modal-content{padding:30px 20px}}.createprofile-success-icon{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;color:#fff;display:flex;font-size:40px;font-weight:700;height:80px;justify-content:center;margin:0 auto 24px;width:80px}.createprofile-modal-title{color:#111827;font-size:24px;font-weight:700;margin:0 0 12px}@media (max-width:480px){.createprofile-modal-title{font-size:20px}}.createprofile-modal-message{color:#6b7280;font-size:16px;line-height:1.5;margin:0 0 24px}@media (max-width:480px){.createprofile-modal-message{font-size:14px}}.createprofile-progress-container{background:#e5e7eb;border-radius:2px;height:4px;margin:0 auto;overflow:hidden;width:200px}.createprofile-progress-bar{animation:progressBar 5s ease-out;height:100%;width:100%}.createprofile-progress-bar,.question-number{background:linear-gradient(135deg,#667eea,#764ba2)}.question-number{border-radius:20px;color:#def501;font-size:14px;font-weight:600;padding:6px 14px}.question-number-badge{background:#667eea;border-radius:6px;color:#fff;display:inline-block;font-size:13px;font-weight:700;margin-bottom:12px;padding:4px 12px}.essay-attachments-display{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:10px;margin-top:20px;padding:16px}.essay-attachments-display>strong{color:#343a40;display:block;font-size:15px;font-weight:600;margin-bottom:12px}.attachments-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.attachment-card-instructor{align-items:center;background-color:#fff;border:1px solid #dee2e6;border-radius:10px;box-shadow:0 2px 4px #0000000d;display:flex;gap:12px;padding:14px;transition:all .3s ease}.attachment-card-instructor:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-2px)}.attachment-icon{font-size:32px;min-width:40px;text-align:center}.attachment-info{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.attachment-filename{color:#333;font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-size{color:#6c757d;font-size:12px}.attachment-actions{display:flex;flex-shrink:0;gap:8px}.btn-download-attachment,.btn-view-attachment{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:4px;padding:8px 12px;text-decoration:none;transition:all .3s ease;white-space:nowrap}.btn-download-attachment{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-download-attachment:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 4px 8px #667eea4d;transform:translateY(-1px)}.btn-view-attachment{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-view-attachment:hover{background:linear-gradient(135deg,#059669,#10b981);box-shadow:0 4px 8px #10b9814d;transform:translateY(-1px)}@media (max-width:768px){.attachments-grid{grid-template-columns:1fr}.attachment-card-instructor{flex-direction:column;text-align:center}.attachment-actions{justify-content:center;width:100%}}.float-back{border-bottom:3px solid #667eea;margin-bottom:20px;padding-bottom:20px;text-align:center}.back-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:5px;left:10px;padding:10px 20px;position:fixed;top:250px;transition:all .3s ease}.modal-back-wrapper{align-items:center;background:#f9fafb;border-bottom:2px solid #e5e7eb;display:flex;gap:1.5rem;justify-content:flex-start;padding:1rem}.modal-back-wrapper h2{font-size:1.2rem}.modal-back-button{font-Weight:600;background:#ef4444;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:1rem;padding:.5rem 1rem}.back-button:hover{background:#5568d3;box-shadow:0 5px 15px #667eea66;transform:translateX(-5px)}@media (max-width:768px){.back-button{margin-bottom:20px;position:static}}.required{color:red}.messages-container{display:flex;flex-direction:column;height:calc(100vh - 250px)}.messages-layout{display:flex;gap:20px;height:100%}.messages-sidebar{border-right:1px solid #e5e7eb;padding-right:20px;width:300px}.student-message-list{display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 300px);overflow-y:auto}.student-message-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px;position:relative;transition:all .2s}.student-message-item:hover{background:#f3f4f6}.student-message-item.active{background:#e0f2fe;border:1px solid #0ea5e9}.student-message-avatar{border-radius:50%;height:45px;object-fit:cover;width:45px}.student-message-info{display:flex;flex:1 1;flex-direction:column}.unread-badge{align-items:center;background:#ef4444;border-radius:50%;color:#fff;display:flex;font-size:12px;font-weight:700;height:24px;justify-content:center;width:24px}.messages-conversation{display:flex;flex:1 1;flex-direction:column}.conversation-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:none;box-shadow:0 4px 16px #667eea4d;display:flex;flex-shrink:0;height:70px;overflow:hidden;padding:10px 20px;position:relative}.conversation-header:before{animation:pulse 4s ease-in-out infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:200%;position:absolute;right:-50%;top:-50%;width:200%}@media (max-width:768px){.conversation-header{height:90px;padding:18px 20px}}.conversation-avatar{border-radius:50%;height:50px;width:50px}.conversation-messages{background:linear-gradient(180deg,#f8f9fc 0,#fff);flex:1 1;gap:10px;min-height:0;overflow-x:hidden;padding:15px 16px;scroll-behavior:smooth}.message-bubble.sent{margin-left:auto}.message-bubble.sent .message-content{background:#0ea5e9;color:#fff}.message-bubble.received .message-content{background:#f3f4f6;color:#1f2937}.message-content{border-radius:12px;display:flex;flex-direction:column;gap:5px;padding:12px 16px}.message-text{word-wrap:break-word;margin:0}.message-time{font-size:11px;opacity:.7}.message-input-form{background:#fff;border-top:1px solid #0000000f;box-shadow:0 -4px 16px #0000000a;display:flex;flex-shrink:0;gap:12px;min-height:40px;padding:20px 24px;position:relative;z-index:10}@media (max-width:768px){.message-input-form{min-height:30px;padding:16px}}.message-input{border:1px solid #d1d5db;border-radius:8px;flex:1 1;font-size:14px;padding:12px 16px}.send-message-btn{background:#0ea5e9;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:12px 24px}.send-message-btn:hover{background:#0284c7}.no-conversation-selected,.no-messages{align-items:center;color:#9ca3af;display:flex;height:100%;justify-content:center}.message-wrapper{margin-bottom:16px}.message-bubble{word-wrap:break-word;animation:bubblePop .3s cubic-bezier(.68,-.55,.265,1.55);border-radius:18px;box-shadow:0 2px 8px #00000014;display:flex;gap:10px;max-width:65%;padding:14px 18px;position:relative;transition:all .2s ease}.message-header{align-items:center;gap:12px}.message-header,.message-id{display:flex;font-size:.75rem;justify-content:space-between;margin-bottom:6px;opacity:.9}.message-id{align-items:flex-start;flex-direction:column}.message-title{font-size:.95rem;font-weight:600;margin-bottom:4px}.message-body{font-size:.9rem}.message-status{margin-top:4px}.status-indicator{opacity:.8}.status-indicator.delivered{color:#6b7280}.status-indicator.sent{color:#9ca3af}.message-bubble:hover{box-shadow:0 4px 8px #00000026}.conversation-messages{display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 300px);overflow-y:auto;padding:20px}.message-wrapper{display:flex;width:100%}.message-wrapper.sent{justify-content:flex-end}.message-wrapper.received{justify-content:flex-start}.my-message{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:4px;color:#fff}.their-message{background:#f3f4f6;border:1px solid #e5e7eb;border-bottom-left-radius:4px;color:#1f2937}.message-sender{font-weight:600;letter-spacing:.5px;text-transform:uppercase}.message-time{font-size:.7rem;white-space:nowrap}.message-title{border-bottom:1px solid #fff3;font-size:1rem;font-weight:700;margin-bottom:6px;padding-bottom:4px}.their-message .message-title{border-bottom:1px solid #0000001a}.message-body{word-wrap:break-word;font-size:.95rem;line-height:1.5}.message-status{display:flex;font-size:.75rem;justify-content:flex-end;margin-top:6px}.status-indicator{align-items:center;display:inline-flex;font-weight:600;gap:2px}.status-indicator.seen{color:#10b981}.status-indicator.delivered{color:#ffffffb3}.status-indicator.sent{color:#ffffff80}.resource-files-list{display:flex;gap:7px}.usergate-loading-container{min-height:100vh}.usergate-loading-text{color:#667eea;font-size:18px;font-weight:600;margin-top:20px}.usergate-profile-card{cursor:default;max-width:600px;transform:none;width:100%}.usergate-profile-card:hover{transform:none}.usergate-title{font-size:24px;margin-top:20px}.usergate-description{color:#6b7280;font-size:16px;line-height:1.6;margin:15px 0}.usergate-avatar-large{height:120px;width:120px}.usergate-avatar-placeholder{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:3px solid #667eea;border-radius:50%;color:#fff;display:flex;font-size:48px;font-weight:700;height:120px;justify-content:center;margin:10px auto;width:120px}.usergate-features-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(2,1fr);margin-bottom:25px;margin-top:25px}.usergate-feature-item{border-left:none;border-radius:8px;padding:15px;text-align:center}.usergate-actions{display:flex;gap:12px;margin-top:30px}@media (max-width:768px){.usergate-features-grid{gap:10px;grid-template-columns:1fr}.usergate-actions{flex-direction:column}.usergate-btn-secondary{width:100%}}@media (max-width:480px){.usergate-avatar-large,.usergate-avatar-placeholder{font-size:40px;height:100px;width:100px}.usergate-title{font-size:20px}.usergate-description{font-size:14px}}.createprofile-checking-container{align-items:center;display:flex;justify-content:center;min-height:60vh;padding:20px}.createprofile-checking-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:40px;text-align:center}.createprofile-checking-text{color:#6b7280;font-size:16px;margin-top:20px}.createprofile-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:20px;max-width:800px;padding:30px;width:100%}@media (max-width:768px){.createprofile-card{margin:15px;padding:20px}}@media (max-width:480px){.createprofile-card{margin:10px;padding:15px}}.createprofile-header{margin-bottom:30px;padding-bottom:20px;text-align:center}.createprofile-avatar{border:4px solid #667eea;border-radius:50%;height:100px;margin-bottom:15px;object-fit:cover;width:100px}.createprofile-avatar-placeholder{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;font-size:40px;font-weight:700;height:100px;justify-content:center;margin:0 auto 15px;width:100px}.createprofile-name{color:#2d3748;font-size:24px;font-weight:700;margin:10px 0 5px}@media (max-width:480px){.createprofile-name{font-size:20px}}.createprofile-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;display:inline-block;font-size:13px;font-weight:600;margin-top:10px;padding:8px 16px}.createprofile-form{display:flex;flex-direction:column;gap:30px}.createprofile-section{display:flex;flex-direction:column;gap:20px}.createprofile-section-title{border-bottom:2px solid #e5e7eb;color:#2d3748;font-size:18px;font-weight:700;margin:0;padding-bottom:10px}@media (max-width:480px){.createprofile-section-title{font-size:16px}}.createprofile-field{display:flex;flex-direction:column;gap:8px}.createprofile-label{align-items:center;color:#374151;display:flex;flex-wrap:wrap;font-size:14px;font-weight:600;gap:8px}.createprofile-required{color:#ef4444}.createprofile-char-counter,.createprofile-helper-text{color:#6b7280;font-size:12px;font-weight:400;margin-left:4px}.createprofile-textarea{font-family:inherit;min-height:100px;resize:vertical}.createprofile-input-error{border-color:#ef4444!important}.createprofile-input-error:focus{border-color:#dc2626!important}.createprofile-error-message{align-items:center;color:#ef4444;display:flex;font-size:13px;gap:4px;margin-top:-4px}.createprofile-error-alert{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;color:#dc2626;display:flex;font-size:14px;gap:8px;padding:12px 16px}.createprofile-error-icon{flex-shrink:0}.createprofile-security-notice{align-items:flex-start;background:#f9fafb;border-radius:12px;display:flex;gap:12px;padding:16px}.createprofile-security-icon{flex-shrink:0;font-size:20px}.createprofile-security-text{flex:1 1}.createprofile-security-title{color:#111827;font-size:13px;font-weight:600;margin:0 0 8px}.createprofile-security-description{color:#6b7280;font-size:12px;line-height:1.5;margin:0}.createprofile-loader{height:16px;margin:0;width:16px}@keyframes slideUpModal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes progressBar{0%{width:0}to{width:100%}}.verify2fa-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.verify2fa-card{animation:slideUp .4s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:450px;padding:40px;width:100%}.verify2fa-header{margin-bottom:30px;text-align:center}.lock-icon{animation:pulse 2s ease-in-out infinite;font-size:64px;margin-bottom:20px}.verify2fa-header h1{color:#1a202c;font-size:24px;margin-bottom:10px}.verify2fa-header p{color:#718096;font-size:14px}.verify2fa-form{display:flex;flex-direction:column;gap:20px}.code-input-wrapper{display:flex;justify-content:center}.code-input{border:2px solid #e2e8f0;border-radius:12px;font-size:32px;font-weight:600;letter-spacing:8px;max-width:300px;padding:20px;text-align:center;transition:all .3s ease;width:100%}.code-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.code-input:disabled{background:#f7fafc;cursor:not-allowed}.error-message{align-items:center;background:#fff5f5;border:1px solid #fc8181;border-radius:8px;color:#c53030;display:flex;font-size:14px;gap:10px;padding:12px}.verify2fa-actions{display:flex;flex-direction:column;gap:12px}.verify-button{align-items:center;background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;padding:14px;transition:all .3s ease;width:100%}.verify-button:hover:not(:disabled){background:#5a67d8;box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.verify-button:disabled{background:#cbd5e0;cursor:not-allowed;transform:none}.cancel-button{background:#0000;border:1px solid #e2e8f0;border-radius:8px;color:#718096;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:all .3s ease;width:100%}.cancel-button:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0}.cancel-button:disabled{cursor:not-allowed;opacity:.5}.spinner-small{animation:spin .6s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.verify2fa-help{border-top:1px solid #e2e8f0;margin-top:20px;padding-top:20px}.verify2fa-help details{cursor:pointer}.verify2fa-help summary{border-radius:6px;color:#667eea;font-size:14px;font-weight:600;padding:10px;transition:background .2s}.verify2fa-help summary:hover{background:#f7fafc}.help-content{color:#4a5568;font-size:14px;line-height:1.6;padding:15px 10px 5px}.help-content p{margin-bottom:10px}.help-content strong{color:#2d3748}@media (max-width:480px){.verify2fa-card{padding:30px 20px}.lock-icon{font-size:48px}.verify2fa-header h1{font-size:20px}.code-input{font-size:24px;letter-spacing:6px}}.toggle-input-button{background:#0000;border:none;border-radius:8px;color:#667eea;cursor:pointer;font-size:14px;font-weight:600;margin-top:8px;padding:12px;transition:all .3s ease;width:100%}.toggle-input-button:hover:not(:disabled){background:#f7fafc;color:#5a67d8}.toggle-input-button:disabled{cursor:not-allowed;opacity:.5}.code-input[placeholder=XXXXXXXX]{font-size:24px;letter-spacing:4px}.profile-loading{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;min-height:400px}.profile-loading p{color:var(--text-secondary);font-size:1rem}.profile-card{background:radial-gradient(#179696,#aad1d1);border-radius:16px;box-shadow:0 4px 20px #00000014;transition:all .3s ease}.profile-card:hover{box-shadow:0 6px 30px #0000001f;transform:translateY(-2px)}@media (max-width:768px){.profile-card{border-radius:12px}}.profile-header{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);color:#fff;padding:2.5rem 2rem;text-align:center}.profile-avatar{object-fit:cover}.profile-avatar,.profile-avatar-placeholder{border:4px solid #fff;border-radius:50%;box-shadow:0 4px 12px #0003;height:120px;margin-bottom:1rem;width:120px}.profile-avatar-placeholder{align-items:center;background:#fff;color:var(--primary-color);display:inline-flex;font-size:3rem;font-weight:700;justify-content:center}.profile-name{font-size:1.8rem;font-weight:700;margin:.5rem 0 .25rem;text-shadow:0 2px 4px #0000001a}.profile-subtitle{font-size:1rem;margin:0;opacity:.95}.profile-badge{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:20px;display:inline-block;font-size:.9rem;font-weight:600;margin-top:1rem;padding:.5rem 1.25rem}@media (max-width:768px){.profile-header{padding:2rem 1.5rem}.profile-avatar,.profile-avatar-placeholder{font-size:2.5rem;height:100px;width:100px}.profile-name{font-size:1.5rem}.profile-subtitle{font-size:.9rem}}.profile-form{padding:2rem}@media (max-width:768px){.profile-form{padding:1.5rem}}.profile-section{margin-bottom:2rem}.profile-section:last-of-type{margin-bottom:1rem}@media (max-width:768px){.profile-section{margin-bottom:1.5rem}.profile-section-title{font-size:1.1rem}}.profile-field{border:2px solid #e5e7eb;border-radius:8px;margin-bottom:1.5rem}.profile-label{color:var(--text-secondary);display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem}.profile-required{color:#ef4444;margin-left:.25rem}.profile-helper-text{font-size:.8rem}.profile-char-counter,.profile-helper-text{color:var(--text-muted);font-weight:400;margin-left:.5rem}.profile-char-counter{font-size:.75rem}.profile-value{align-items:center;background:var(--input-bg);border:1px solid #dfd9ad;color:var(--text-primary);display:flex;margin:10px;padding:.875rem 1rem}.profile-value.profile-bio{display:block;min-height:auto}@media (max-width:768px){.profile-field{margin-bottom:1.25rem}}.profile-tags{margin-top:.5rem}.profile-tag{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);border-radius:20px;box-shadow:0 2px 6px #0000001a;font-size:.85rem;font-weight:500}.profile-tag:hover{box-shadow:0 4px 12px #00000026}.profile-input-error{background-color:#ef44440d!important;border-color:#ef4444!important}.profile-error-message{margin-top:.25rem}.profile-error-icon{font-size:1.25rem}.action-buttons{border-top:2px solid var(--border-color);margin-top:2rem;padding-top:1.5rem}.profile-loader{animation:spin .6s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:.5rem;width:16px}@media (max-width:768px){.action-buttons{flex-direction:column;gap:.75rem}.action-buttons .general-btn{width:100%}}@media (max-width:480px){.profile-avatar,.profile-avatar-placeholder{font-size:2rem;height:80px;width:80px}.profile-name{font-size:1.3rem}.profile-subtitle{font-size:.85rem}.profile-section-title{font-size:1rem}}.profile-modern-container{margin:0 auto;max-width:1000px;padding:0 20px;width:100%}@media (max-width:768px){.profile-modern-container{padding:0 10px}}.profile-card{background:#fff;border-radius:24px;box-shadow:0 10px 40px #0000001a;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1)}.profile-card:hover{box-shadow:0 20px 60px #00000026;transform:translateY(-4px)}.profile-header-modern{background:#0000;overflow:hidden;padding:0;position:relative}.profile-header-background{background:linear-gradient(135deg,#667eea,#764ba2);height:200px;overflow:hidden;position:relative}.profile-header-background:before{animation:float 6s ease-in-out infinite;background:#ffffff1a;border-radius:50%;content:"";height:400px;position:absolute;right:-20%;top:-50%;width:400px}.profile-header-background:after{animation:float 8s ease-in-out infinite reverse;background:#ffffff14;border-radius:50%;bottom:-30%;content:"";height:300px;left:-10%;position:absolute;width:300px}@keyframes float{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(5deg)}}.profile-header-content{margin-top:-80px;padding:0 2rem 2rem;position:relative;text-align:center;z-index:1}.profile-avatar-modern{border:6px solid #fff;border-radius:50%;box-shadow:0 8px 24px #00000026;height:160px;margin-bottom:1.5rem;object-fit:cover;transition:all .3s ease;width:160px}.profile-avatar-modern:hover{box-shadow:0 12px 32px #0003;transform:scale(1.05)}.profile-avatar-placeholder-modern{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:6px solid #fff;border-radius:50%;box-shadow:0 8px 24px #00000026;color:#fff;display:inline-flex;font-size:4rem;font-weight:700;height:160px;justify-content:center;margin-bottom:1.5rem;transition:all .3s ease;width:160px}.profile-avatar-placeholder-modern:hover{box-shadow:0 12px 32px #0003;transform:scale(1.05)}.profile-name-modern{color:#1a202c;font-size:2.25rem;font-weight:800;letter-spacing:-.5px;margin:.5rem 0}.profile-subtitle-modern{color:#718096;font-size:1.1rem;font-weight:500;margin:0 0 1.5rem}.profile-badge-modern{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50px;box-shadow:0 4px 12px #667eea4d;color:#fff;display:inline-flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.profile-badge-modern:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.profile-field-modern{border:2px solid #5048cc;border-radius:16px;margin-bottom:1.25rem}.profile-field-modern:hover{box-shadow:0 4px 12px #0000000d}.profile-field-modern .profile-input{background:#fff;border:2px solid #cbd5e0;border-radius:12px;color:#1a202c;font-size:1rem;margin:0 10px;padding:1rem 1.25rem;transition:all .3s ease;width:calc(100% - 20px)}.profile-field-modern .profile-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.profile-field-modern .profile-dropdown{background:#fff;border:2px solid #cbd5e0;border-radius:12px;color:#1a202c;cursor:pointer;font-size:1rem;margin:0 10px;padding:1rem 1.25rem;transition:all .3s ease}.profile-field-modern .profile-dropdown:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.profile-field-modern .profile-dropdown option{background:#fff;color:#1a202c;padding:10px}.profile-field-modern .profile-textarea{background:#fff;border:2px solid #cbd5e0;border-radius:12px;color:#1a202c;font-family:inherit;font-size:1rem;line-height:1.6;margin:0 10px;min-height:140px;padding:1rem 1.25rem;resize:vertical;transition:all .3s ease;width:calc(100% - 20px)}.profile-field-modern .profile-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.profile-section-title{border-bottom:2px solid #e2e8f0;color:#1a202c;font-size:1.1rem;font-weight:700;margin:2rem 0 1.5rem;padding-bottom:1rem;position:relative}.profile-section-title:after{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;bottom:-3px;content:"";height:3px;left:0;position:absolute;width:60px}.profile-tags{gap:.75rem;margin:.75rem}.profile-tag{box-shadow:0 2px 8px #667eea4d;padding:.625rem 1.25rem}.profile-tag:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-3px) scale(1.05)}.action-buttons{background:#0000;border-top:none;display:flex;gap:1rem;justify-content:center;margin-top:2.5rem;padding:2rem 1.5rem 1.5rem}.action-buttons .general-btn{border-radius:12px;box-shadow:0 4px 12px #0000001a;font-size:1rem;font-weight:700;padding:1rem 2rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.action-buttons .primary-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff}.action-buttons .primary-btn:hover{background:linear-gradient(135deg,#5568d3,#6a4199);box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.action-buttons .secondary-btn{background:#fff;border:2px solid #667eea;color:#667eea}.action-buttons .secondary-btn:hover{background:#f7fafc;box-shadow:0 6px 20px #00000026;transform:translateY(-2px)}@media (max-width:768px){.profile-header-background{height:160px}.profile-header-content{margin-top:-60px;padding:0 1.5rem 1.5rem}.profile-avatar-modern,.profile-avatar-placeholder-modern{border-width:5px;font-size:3rem;height:120px;width:120px}.profile-name-modern{font-size:1.75rem}.profile-subtitle-modern{font-size:1rem}.profile-badge-modern{font-size:.9rem;padding:.625rem 1.25rem}.profile-field-modern{padding:1rem}.action-buttons{flex-direction:column;gap:.75rem;padding:1.5rem 1rem 1rem}.action-buttons .general-btn{width:100%}}@media (max-width:480px){.profile-header-background{height:140px}.profile-avatar-modern,.profile-avatar-placeholder-modern{border-width:4px;font-size:2.5rem;height:100px;width:100px}.profile-name-modern{font-size:1.5rem}.profile-subtitle-modern{font-size:.9rem}}.twofactor-status-inline{align-items:center;background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:20px;justify-content:space-between;padding:16px}.twofactor-info{flex:1 1}.status-badge{margin-bottom:8px}.status-badge.enabled-inline{background:#c6f6d5;color:#22543d}.status-badge.disabled-inline{background:#fed7d7;color:#742a2a}.twofactor-description{color:#4a5568;font-size:14px;line-height:1.5;margin:0}.backup-count{color:#2c5282;font-weight:500}.twofactor-manage-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .3s ease;white-space:nowrap}.twofactor-manage-btn:hover{background:#5a67d8;box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}@media (max-width:768px){.twofactor-status-inline{align-items:flex-start;flex-direction:column}.twofactor-manage-btn{width:100%}}.profile-header-compact{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:24px 24px 0 0;padding:2rem;position:relative}.profile-header-background-compact{border-radius:24px 24px 0 0;height:100%;left:0;overflow:hidden;position:absolute;right:0;top:0}.profile-header-background-compact:before{animation:float 6s ease-in-out infinite;background:#ffffff1a;border-radius:50%;content:"";height:300px;position:absolute;right:-20%;top:-50%;width:300px}.profile-header-info{align-items:center;display:flex;gap:1.5rem;position:relative;z-index:1}.profile-avatar-compact{object-fit:cover}.profile-avatar-compact,.profile-avatar-placeholder-compact{border:4px solid #fff;border-radius:50%;box-shadow:0 4px 12px #0003;flex-shrink:0;height:100px;width:100px}.profile-avatar-placeholder-compact{align-items:center;background:#fff;color:#667eea;display:flex;font-size:2.5rem;font-weight:700;justify-content:center}.profile-header-text{color:#fff;flex:1 1}.profile-name-compact{color:#fff;font-size:1.75rem;font-weight:800;margin:0 0 .25rem;text-shadow:0 2px 4px #0000001a}.profile-email-compact{font-size:1rem;font-weight:500;margin:0 0 .75rem;opacity:.95}.profile-badge-compact{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:20px;display:inline-block;font-size:.875rem;font-weight:600;padding:.5rem 1rem}.profile-fields-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,1fr);margin-bottom:1.25rem}@media (max-width:768px){.profile-fields-grid{gap:1rem;grid-template-columns:1fr}}.profile-field-modern{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;margin-bottom:0;padding:1.25rem;transition:all .3s ease}.profile-field-modern:hover{background:#fff;border-color:#cbd5e0;box-shadow:0 2px 8px #0000000d}.profile-section>.profile-field-modern{margin-bottom:1.25rem}.profile-field-modern .profile-label{color:#2d3748;display:block;font-size:.875rem;font-weight:700;letter-spacing:.5px;margin-bottom:.75rem;text-transform:uppercase}.profile-input{background:#fff;border:2px solid #cbd5e0;border-radius:8px;color:#1a202c;font-size:1rem;padding:.75rem 1rem;transition:all .3s ease;width:100%}.profile-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.profile-input:disabled{background:#f7fafc;cursor:not-allowed}.profile-value{background:#fff;border:2px solid #e2e8f0;border-radius:8px;color:#1a202c;font-size:1rem;margin:0;min-height:auto;padding:.75rem 1rem}.profile-value.profile-bio{line-height:1.6;padding:1rem;white-space:pre-wrap}.profile-textarea{background:#fff;border:2px solid #cbd5e0;border-radius:8px;color:#1a202c;font-family:inherit;font-size:1rem;line-height:1.6;min-height:120px;padding:1rem;resize:vertical;transition:all .3s ease;width:100%}.profile-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.profile-field-modern.security-field{background:linear-gradient(135deg,#f8fafc,#edf2f7);border:2px solid #cbd5e0;padding:0}.profile-field-modern.security-field .twofactor-status-inline{background:#0000;border:none;border-radius:12px;padding:1.25rem}.profile-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:0}.profile-tag{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50px;box-shadow:0 2px 6px #667eea40;color:#fff;font-size:.875rem;font-weight:600;padding:.5rem 1rem;transition:all .3s ease}.profile-tag:hover{box-shadow:0 4px 12px #667eea59;transform:translateY(-2px)}.profile-value-error{background-color:#ef44440d!important;border-color:#ef4444!important}.profile-error-message{color:#ef4444;display:block;font-size:.85rem;font-weight:500;margin-top:.5rem}.profile-error-alert{align-items:center;background:#ef44441a;border:1px solid #ef4444;border-radius:8px;color:#dc2626;display:flex;gap:.75rem;margin-bottom:1.5rem;padding:1rem}@media (max-width:768px){.profile-header-compact{padding:1.5rem}.profile-header-info{flex-direction:column;gap:1rem;text-align:center}.profile-avatar-compact,.profile-avatar-placeholder-compact{font-size:2rem;height:80px;width:80px}.profile-name-compact{font-size:1.5rem}.profile-email-compact{font-size:.9rem}.profile-badge-compact{font-size:.8rem;padding:.4rem .875rem}}@media (max-width:480px){.profile-header-compact{padding:1.25rem}.profile-avatar-compact,.profile-avatar-placeholder-compact{font-size:1.75rem;height:70px;width:70px}.profile-name-compact{font-size:1.25rem}.profile-field-modern{padding:1rem}}.pp-privacy-cards-grid{display:flex;flex-direction:column}.pp-privacy-card{border-radius:14px;gap:16px;padding:16px 20px;text-align:left}.pp-privacy-card:before{background:#667eea;bottom:0;content:"";left:0;position:absolute;top:0;transform:scaleY(0);transition:transform .25s ease;width:4px}.pp-privacy-card:hover:before{transform:scaleY(1)}.pp-privacy-card:hover{box-shadow:0 4px 14px #667eea26;transform:translateX(4px)}.pp-privacy-card.pp-danger:before{background:#ef4444}.pp-privacy-card.pp-danger:hover{box-shadow:0 4px 14px #ef444426}.pp-privacy-card-icon{flex-shrink:0;font-size:1.75rem;text-align:center;width:44px}.pp-privacy-card-content h4{font-size:.95rem}.pp-privacy-card-content p{font-size:.82rem}.pp-privacy-card-arrow{flex-shrink:0;font-size:1.1rem}.pp-privacy-card:hover .pp-privacy-card-arrow{transform:translateX(4px)}.pp-modal{max-height:80vh;max-width:620px}.pp-modal-header{padding:18px 22px}.pp-modal-header-info h3{font-size:1.1rem}.pp-modal-header-info p{font-size:.8rem}.pp-modal-close-btn{font-size:16px;height:34px;width:34px}.pp-modal-filter-bar{padding:14px 22px}.pp-modal-filter-bar label{font-size:.82rem}.pp-modal-filter-select{min-width:160px}.pp-modal-record-count{font-size:.8rem}.pp-modal-body{padding:16px 22px}.pp-modal-body::-webkit-scrollbar{width:6px}.pp-log-item{gap:12px;margin-bottom:10px}.pp-log-item-action{font-size:.88rem}.pp-log-item-desc{font-size:.8rem}.pp-log-item-time{font-size:.75rem}.pp-log-item-expand{font-size:.75rem;margin-top:2px}.pp-log-item-details{gap:5px}.pp-log-item-details p{font-size:.78rem}.pp-log-severity{font-size:.72rem;padding:2px 8px}.pp-modal-empty p{font-size:.95rem;margin:8px 0 0}.pp-modal-loading p{font-size:.9rem;margin-top:12px}@media (max-width:768px){.pp-modal{margin-top:10px;max-height:90vh}.pp-modal-filter-bar{align-items:stretch;flex-direction:column}.pp-modal-filter-select{min-width:100%}.pp-modal-record-count{margin-left:0}}@media (max-width:480px){.pp-modal-header{padding:14px 16px}.pp-modal-body{padding:12px 14px}.pp-privacy-card{padding:14px 16px}.pp-privacy-card-icon{font-size:1.5rem;width:36px}}.pp-basic-info-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-top:12px}@media (max-width:1024px){.pp-basic-info-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.pp-basic-info-grid{grid-template-columns:1fr}}.pp-privacy-cards-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-top:16px}@media (max-width:900px){.pp-privacy-cards-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.pp-privacy-cards-grid{grid-template-columns:1fr}}.pp-privacy-card{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:16px;cursor:pointer;display:flex;flex-direction:column;gap:10px;justify-content:center;min-height:110px;overflow:hidden;padding:20px 16px;position:relative;text-align:center;transition:all .25s ease;width:100%}.pp-privacy-card:after{background:#667eea;bottom:0;content:"";height:4px;left:0;position:absolute;right:0;transform:scaleX(0);transition:transform .25s ease}.pp-privacy-card:hover:after{transform:scaleX(1)}.pp-privacy-card:hover{border-color:#667eea;box-shadow:0 8px 20px #667eea26;transform:translateY(-3px)}.pp-privacy-card:disabled{cursor:not-allowed;opacity:.6;transform:none}.pp-privacy-card.pp-danger:after{background:#ef4444}.pp-privacy-card.pp-danger:hover{border-color:#ef4444;box-shadow:0 8px 20px #ef444426}.pp-privacy-card-icon{font-size:2rem}.pp-privacy-card-content{flex:1 1}.pp-privacy-card-content h4{color:#2d3748;font-size:.9rem;font-weight:600;margin:0 0 4px}.pp-privacy-card-content p{color:#718096;font-size:.78rem;line-height:1.4;margin:0}.pp-privacy-card-arrow{color:#a0aec0;font-size:1rem;transition:transform .25s ease,color .25s ease}.pp-privacy-card:hover .pp-privacy-card-arrow{color:#667eea;transform:translateY(-2px)}.pp-privacy-card.pp-danger:hover .pp-privacy-card-arrow{color:#ef4444}.pp-modal-overlay{align-items:flex-start;background:#00000073;border-radius:inherit;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:20px;position:absolute;right:0;top:0;z-index:100}.pp-modal{animation:pp-slide-in .25s ease-out;background:#fff;border-radius:18px;box-shadow:0 12px 40px #0003;display:flex;flex-direction:column;margin-top:20px;max-height:82vh;max-width:640px;width:100%}@keyframes pp-slide-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.pp-modal-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;flex-shrink:0;justify-content:space-between;padding:16px 20px}.pp-modal-header-info h3{color:#2d3748;font-size:1.05rem;font-weight:700;margin:0 0 2px}.pp-modal-header-info p{color:#718096;font-size:.78rem;margin:0}.pp-modal-close-btn{align-items:center;background:#f3f4f6;border:none;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.pp-modal-close-btn:hover{background:#ef4444;color:#fff;transform:rotate(90deg)}.pp-modal-download-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s ease}.pp-modal-download-btn:hover:not(:disabled){box-shadow:0 4px 10px #667eea66;transform:translateY(-1px)}.pp-modal-download-btn:disabled{cursor:not-allowed;opacity:.5}.pp-modal-filter-bar{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;flex-shrink:0;flex-wrap:wrap;gap:12px;padding:12px 20px}.pp-modal-filter-bar label{color:#6b7280;font-size:.8rem;font-weight:600;white-space:nowrap}.pp-modal-filter-select{background:#fff;border:1.5px solid #e2e8f0;border-radius:8px;color:#2d3748;cursor:pointer;flex:1 1;font-size:.82rem;min-width:140px;padding:6px 10px;transition:border-color .2s ease}.pp-modal-filter-select:focus{border-color:#667eea;outline:none}.pp-modal-record-count{color:#9ca3af;font-size:.78rem;margin-left:auto;white-space:nowrap}.pp-modal-body{flex:1 1;overflow-y:auto;padding:14px 18px}.pp-modal-body::-webkit-scrollbar{width:5px}.pp-modal-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.pp-modal-body::-webkit-scrollbar-thumb{background:#667eea;border-radius:3px}.pp-log-item{align-items:flex-start;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;gap:10px;margin-bottom:8px;padding:12px 14px;transition:all .2s ease}.pp-log-item:hover{background:#f8f9ff;border-color:#667eea}.pp-log-item-main{flex:1 1}.pp-log-item-action{color:#2d3748;font-size:.86rem;font-weight:600;margin:0 0 3px}.pp-log-item-desc{color:#6b7280;font-size:.78rem;margin:0 0 4px}.pp-log-item-expand,.pp-log-item-time{color:#9ca3af;font-size:.72rem}.pp-log-item-expand{flex-shrink:0;margin-top:3px}.pp-log-item-details{background:#f9fafb;border-radius:8px;display:flex;flex-direction:column;gap:4px;margin-top:10px;padding:10px 12px}.pp-log-item-details p{color:#6b7280;font-size:.76rem;margin:0}.pp-log-item-details strong{color:#374151}.pp-log-severity{border-radius:10px;display:inline-block;font-size:.7rem;font-weight:600;padding:2px 7px;text-transform:uppercase}.pp-log-severity.low{background:#d1fae5;color:#065f46}.pp-log-severity.medium{background:#fef3c7;color:#92400e}.pp-log-severity.high{background:#fee2e2;color:#991b1b}.pp-log-severity.critical{background:#fce7f3;color:#9d174d}.pp-modal-empty{color:#9ca3af;font-size:.9rem}.pp-modal-empty,.pp-modal-loading{padding:40px 20px;text-align:center}.pp-modal-loading p{color:#667eea;font-size:.88rem;margin-top:10px}.pp-delete-modal{max-width:480px}.pp-delete-warning{align-items:flex-start;background:#fff5f5;border:1.5px solid #fed7d7;border-radius:12px;display:flex;gap:14px;margin-bottom:14px;padding:16px}.pp-delete-warning-icon{flex-shrink:0;font-size:1.75rem}.pp-delete-warning h4{color:#c53030;font-size:.9rem;font-weight:700;margin:0 0 8px}.pp-delete-warning ul{color:#c53030;font-size:.82rem;line-height:1.8;margin:0;padding-left:18px}.pp-delete-info{align-items:flex-start;background:#f0fff4;border:1.5px solid #c6f6d5;border-radius:12px;display:flex;gap:14px;margin-bottom:20px;padding:16px}.pp-delete-info-icon{flex-shrink:0;font-size:1.75rem}.pp-delete-info h4{color:#276749;font-size:.9rem;font-weight:700;margin:0 0 8px}.pp-delete-info ul{color:#276749;font-size:.82rem;line-height:1.8;margin:0;padding-left:18px}.pp-delete-actions{display:flex;gap:12px;justify-content:flex-end}.pp-delete-cancel-btn{background:#fff;border:2px solid #e2e8f0;border-radius:10px;color:#6b7280;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .2s ease}.pp-delete-cancel-btn:hover{background:#f3f4f6;border-color:#d1d5db}.pp-delete-confirm-btn{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:10px;box-shadow:0 2px 8px #ef44444d;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .2s ease}.pp-delete-confirm-btn:hover{box-shadow:0 4px 14px #ef444466;transform:translateY(-1px)}@media (max-width:768px){.pp-modal{margin-top:10px;max-height:90vh}.pp-modal-filter-bar{align-items:stretch;flex-direction:column}.pp-modal-filter-select{min-width:100%}.pp-modal-record-count{margin-left:0}.pp-delete-actions{flex-direction:column}.pp-delete-cancel-btn,.pp-delete-confirm-btn{text-align:center;width:100%}}@media (max-width:480px){.pp-modal-header{padding:12px 14px}.pp-modal-body{padding:10px 12px}.pp-privacy-card{min-height:90px;padding:16px 12px}.pp-privacy-card-icon{font-size:1.6rem}}:root{--m-bg-page:#f4f6f9;--m-bg-surface:#fff;--m-bg-elevated:#f8f9fc;--m-bg-card:#f1f4f8;--m-bg-card-hover:#e8ecf3;--m-bg-input:#f8f9fc;--m-bg-point:#b2c2f1;--m-bg-blackcard:#111112;--m-bg-blackcard-hover:#1a1b1c;--m-border:#00000014;--m-border-mid:#0000001f;--m-border-focus:#4f8ef7;--m-text-primary:#111827;--m-text-secondary:#374151;--m-text-white:#eaedf3;--m-text-muted:#6b7280;--m-text-faint:#9ca3af;--m-accent:#3b82f6;--m-accent-hover:#2563eb;--m-accent-dim:#3b82f61a;--m-accent-border:#3b82f64d;--m-green:#16a34a;--m-green-dim:#16a34a1a;--m-green-border:#16a34a4d;--m-amber:#d97706;--m-amber-dim:#d977061a;--m-amber-border:#d977064d;--m-red:#dc2626;--m-red-dim:#dc262614;--m-red-border:#dc262640;--m-purple:#7c3aed;--m-purple-dim:#7c3aed1a;--m-purple-border:#7c3aed4d;--m-role-admin:#2563eb;--m-role-admin-dim:#2563eb17;--m-role-admin-border:#2563eb40;--m-role-instructor:#7c3aed;--m-role-instructor-dim:#7c3aed17;--m-role-instructor-border:#7c3aed40;--m-role-student:#059669;--m-role-student-dim:#05966917;--m-role-student-border:#05966940;--m-lab-color:#059669;--m-lab-dim:#0596691a;--m-quiz-color:#2563eb;--m-quiz-dim:#2563eb1a;--m-exam-color:#d97706;--m-exam-dim:#d977061a;--m-radius-sm:6px;--m-radius-md:10px;--m-radius-lg:14px;--m-radius-xl:20px;--m-radius-full:9999px;--m-shadow-overlay:0 0 0 1px #0000000a,0 24px 64px #00000024;--m-shadow-card:0 1px 4px #00000012;--m-shadow-focus:0 0 0 3px #3b82f62e;--m-space-xs:4px;--m-space-sm:8px;--m-space-md:16px;--m-space-lg:24px;--m-space-xl:32px;--m-space-2xl:48px;--m-font:"Inter","Segoe UI",system-ui,sans-serif;--m-font-mono:"JetBrains Mono","Fira Code",monospace;--m-transition:150ms cubic-bezier(0.4,0,0.2,1);--m-transition-md:240ms cubic-bezier(0.4,0,0.2,1);--m-transition-spring:380ms cubic-bezier(0.34,1.56,0.64,1);--m-modal-sm:460px;--m-modal-md:660px;--m-modal-lg:840px;--m-modal-xl:1060px}.m-overlay{align-items:center;animation:m-overlay-in .24s cubic-bezier(.4,0,.2,1) both;animation:m-overlay-in var(--m-transition-md) both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a73;display:flex;inset:0;justify-content:center;padding:24px;padding:var(--m-space-lg);position:fixed;z-index:1000}@keyframes m-overlay-in{0%{opacity:0}to{opacity:1}}.m-shell{animation:m-shell-in .38s cubic-bezier(.34,1.56,.64,1) both;animation:m-shell-in var(--m-transition-spring) both;background:#fff;background:var(--m-bg-surface);border:1px solid #0000001f;border:1px solid var(--m-border-mid);border-radius:20px;border-radius:var(--m-radius-xl);box-shadow:0 0 0 1px #0000000a,0 24px 64px #00000024;box-shadow:var(--m-shadow-overlay);display:flex;flex-direction:column;font-family:Inter,Segoe UI,system-ui,sans-serif;font-family:var(--m-font);max-height:calc(100vh - 48px);overflow:hidden;position:relative;width:100%}@keyframes m-shell-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.m-body{flex:1 1;overflow-y:auto;padding:32px;padding:var(--m-space-xl);padding-bottom:96px;padding-bottom:calc(var(--m-space-xl)*3);scroll-behavior:smooth}.m-body::-webkit-scrollbar{width:5px}.m-body::-webkit-scrollbar-track{background:#0000}.m-body::-webkit-scrollbar-thumb{background:#0000001f;background:var(--m-border-mid);border-radius:9999px;border-radius:var(--m-radius-full)}.m-body::-webkit-scrollbar-thumb:hover{background:#c1c8d4}.m-header{background:#fff;background:var(--m-bg-surface);border-bottom:1px solid #00000014;border-bottom:1px solid var(--m-border);gap:16px;gap:var(--m-space-md);padding:24px 32px;padding:var(--m-space-lg) var(--m-space-xl)}.m-header,.m-header-icon{align-items:center;display:flex;flex-shrink:0}.m-header-icon{border-radius:10px;border-radius:var(--m-radius-md);font-size:18px;height:40px;justify-content:center;width:40px}.m-header-text{flex:1 1;min-width:0}.m-header-title{color:#111827;color:var(--m-text-primary);font-size:16px;font-weight:700;letter-spacing:-.015em}.m-header-sub{color:#6b7280;color:var(--m-text-muted);font-size:12px;margin-top:2px}.m-footer{align-items:center;background:#f8f9fc;background:var(--m-bg-elevated);border-top:1px solid #00000014;border-top:1px solid var(--m-border);display:flex;flex-shrink:0;gap:8px;gap:var(--m-space-sm);padding:16px 32px;padding:var(--m-space-md) var(--m-space-xl)}.m-footer-spacer{flex:1 1}.m-close-btn{align-items:center;background:#0000;border:1px solid #0000001f;border:1px solid var(--m-border-mid);border-radius:6px;border-radius:var(--m-radius-sm);color:#6b7280;color:var(--m-text-muted);cursor:pointer;display:flex;font-size:13px;height:32px;justify-content:center;line-height:1;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--m-transition);width:32px}.m-close-btn:hover{background:#dc262614;background:var(--m-red-dim);border-color:#dc262640;border-color:var(--m-red-border);color:#dc2626;color:var(--m-red)}.m-badge{align-items:center;border:1px solid #0000;border-radius:9999px;border-radius:var(--m-radius-full);display:inline-flex;font-size:11px;font-weight:600;gap:4px;letter-spacing:.01em;padding:3px 9px}.m-badge--blue{background:#2563eb17;background:var(--m-role-admin-dim);border-color:#2563eb40;border-color:var(--m-role-admin-border);color:#2563eb;color:var(--m-role-admin)}.m-badge--purple{background:#7c3aed17;background:var(--m-role-instructor-dim);border-color:#7c3aed40;border-color:var(--m-role-instructor-border);color:#7c3aed;color:var(--m-role-instructor)}.m-badge--green{background:#05966917;background:var(--m-role-student-dim);border-color:#05966940;border-color:var(--m-role-student-border);color:#059669;color:var(--m-role-student)}.m-badge--amber{background:#d977061a;background:var(--m-amber-dim);border-color:#d977064d;border-color:var(--m-amber-border);color:#d97706;color:var(--m-amber)}.m-badge--red{background:#dc262614;background:var(--m-red-dim);border-color:#dc262640;border-color:var(--m-red-border);color:#dc2626;color:var(--m-red)}.m-badge--gray{background:#f1f4f8;background:var(--m-bg-card);border-color:#0000001f;border-color:var(--m-border-mid);color:#6b7280;color:var(--m-text-muted)}.m-btn{align-items:center;border:1px solid #0000;border-radius:10px;border-radius:var(--m-radius-md);cursor:pointer;display:inline-flex;font-family:Inter,Segoe UI,system-ui,sans-serif;font-family:var(--m-font);font-size:13px;font-weight:600;gap:6px;padding:8px 18px;transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--m-transition);white-space:nowrap}.m-btn:disabled{cursor:not-allowed;opacity:.45}.m-btn--sm{font-size:12px;padding:5px 12px}.m-btn--primary{background:#3b82f6;background:var(--m-accent);border-color:#3b82f6;border-color:var(--m-accent);color:#fff}.m-btn--primary:hover:not(:disabled){background:#2563eb;background:var(--m-accent-hover);box-shadow:0 2px 8px #3b82f64d}.m-btn--secondary{background:#f1f4f8;background:var(--m-bg-card);border-color:#0000001f;border-color:var(--m-border-mid);color:#374151;color:var(--m-text-secondary)}.m-btn--secondary:hover:not(:disabled){background:#e8ecf3;background:var(--m-bg-card-hover)}.m-btn--ghost{background:#0000;border-color:#0000001f;border-color:var(--m-border-mid);color:#6b7280;color:var(--m-text-muted)}.m-btn--ghost:hover:not(:disabled){background:#f1f4f8;background:var(--m-bg-card);color:#374151;color:var(--m-text-secondary)}.m-btn--danger{background:#dc262614;background:var(--m-red-dim);border-color:#dc262640;border-color:var(--m-red-border);color:#dc2626;color:var(--m-red)}.m-btn--danger:hover:not(:disabled){background:#dc2626;background:var(--m-red);color:#fff}.m-btn--success{background:#16a34a1a;background:var(--m-green-dim);border-color:#16a34a4d;border-color:var(--m-green-border);color:#16a34a;color:var(--m-green)}.m-btn--success:hover:not(:disabled){background:#16a34a;background:var(--m-green);color:#fff}.m-section{background:#f1f4f8;background:var(--m-bg-card);border:1px solid #00000014;border:1px solid var(--m-border);border-radius:14px;border-radius:var(--m-radius-lg);padding:24px;padding:var(--m-space-lg)}.m-section,.m-section-title{margin-bottom:16px;margin-bottom:var(--m-space-md)}.m-section-title{color:#6b7280;color:var(--m-text-muted);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.m-field{margin-bottom:16px;margin-bottom:var(--m-space-md)}.m-label{color:#374151;color:var(--m-text-secondary);display:block;font-size:12px;font-weight:600;margin-bottom:5px}.m-label .req{color:#dc2626;color:var(--m-red);margin-left:2px}.m-input,.m-select,.m-textarea{background:#f8f9fc;background:var(--m-bg-input);border:1px solid #0000001f;border:1px solid var(--m-border-mid);border-radius:10px;border-radius:var(--m-radius-md);box-sizing:border-box;color:#111827;color:var(--m-text-primary);font-family:Inter,Segoe UI,system-ui,sans-serif;font-family:var(--m-font);font-size:13px;outline:none;padding:9px 12px;transition:border-color .15s cubic-bezier(.4,0,.2,1),box-shadow .15s cubic-bezier(.4,0,.2,1);transition:border-color var(--m-transition),box-shadow var(--m-transition);width:100%}.m-input:focus,.m-select:focus,.m-textarea:focus{border-color:#4f8ef7;border-color:var(--m-border-focus);box-shadow:0 0 0 3px #3b82f62e;box-shadow:var(--m-shadow-focus)}.m-textarea{line-height:1.6;resize:vertical}.m-empty{align-items:center;display:flex;flex-direction:column;gap:8px;gap:var(--m-space-sm);padding:48px 24px;padding:var(--m-space-2xl) var(--m-space-lg);text-align:center}.m-empty-icon{font-size:36px;opacity:.4}.m-empty-title{color:#6b7280;color:var(--m-text-muted);font-size:15px;font-weight:600}.m-empty-desc{color:#9ca3af;color:var(--m-text-faint);font-size:13px}.m-status-bar{align-items:center;background:#f8f9fc;background:var(--m-bg-elevated);border-bottom:1px solid #00000014;border-bottom:1px solid var(--m-border);display:flex;flex-shrink:0;flex-wrap:wrap;gap:16px;gap:var(--m-space-md);padding:9px 32px;padding:9px var(--m-space-xl)}.m-status-meta{color:#6b7280;color:var(--m-text-muted);font-size:12px}.m-phase-bar{background:#f8f9fc;background:var(--m-bg-elevated);border-bottom:1px solid #00000014;border-bottom:1px solid var(--m-border);display:flex;flex-shrink:0;overflow-x:auto;padding:0 32px;padding:0 var(--m-space-xl)}.m-phase-bar::-webkit-scrollbar{display:none}.m-phase-step{align-items:center;border-bottom:2px solid #0000;color:#9ca3af;color:var(--m-text-faint);display:flex;font-size:12px;font-weight:600;gap:8px;gap:var(--m-space-sm);padding:11px 24px;padding:11px var(--m-space-lg);transition:all .15s cubic-bezier(.4,0,.2,1);transition:all var(--m-transition);white-space:nowrap}.m-phase-step--active{border-bottom-color:#3b82f6;border-bottom-color:var(--m-accent);color:#3b82f6;color:var(--m-accent)}.m-phase-step--done{color:#16a34a;color:var(--m-green)}.m-phase-dot{background:currentColor;border-radius:50%;height:6px;width:6px}.m-collapsible{border:1px solid #00000014;border:1px solid var(--m-border);border-radius:14px;border-radius:var(--m-radius-lg);margin-bottom:8px;margin-bottom:var(--m-space-sm);overflow:hidden}.m-collapsible-toggle{align-items:center;background:#f8f9fc;background:var(--m-bg-elevated);border:none;color:#111827;color:var(--m-text-primary);cursor:pointer;display:flex;font-family:Inter,Segoe UI,system-ui,sans-serif;font-family:var(--m-font);font-size:13px;font-weight:600;justify-content:space-between;padding:16px 24px;padding:var(--m-space-md) var(--m-space-lg);text-align:left;transition:background .15s cubic-bezier(.4,0,.2,1);transition:background var(--m-transition);width:100%}.m-collapsible-toggle:hover{background:#f1f4f8;background:var(--m-bg-card)}.m-collapsible-chevron{color:#9ca3af;color:var(--m-text-faint);font-size:11px;transition:transform .15s cubic-bezier(.4,0,.2,1);transition:transform var(--m-transition)}.m-collapsible-chevron--open{transform:rotate(180deg)}.m-collapsible-body{background:#fff;background:var(--m-bg-surface);border-top:1px solid #00000014;border-top:1px solid var(--m-border);padding:24px;padding:var(--m-space-lg)}.m-divider{background:#00000014;background:var(--m-border);height:1px;margin:24px 0;margin:var(--m-space-lg) 0}.acd-overlay{align-items:center;animation:acd-in var(--m-transition-md) both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a73;display:flex;inset:0;justify-content:center;padding:var(--m-space-lg);position:fixed;z-index:1000}@keyframes acd-in{0%{opacity:0}to{opacity:1}}.acd-shell{animation:acd-shell-in var(--m-transition-spring) both;background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-xl);box-shadow:var(--m-shadow-overlay);display:flex;flex-direction:column;font-family:var(--m-font);height:calc(100vh - 48px);max-width:760px;overflow:hidden;position:relative;width:100%}@keyframes acd-shell-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.acd-header{background:var(--m-bg-surface);border-bottom:1px solid var(--m-border);gap:var(--m-space-md);padding:var(--m-space-lg) var(--m-space-xl)}.acd-header,.acd-header-icon{align-items:center;display:flex;flex-shrink:0}.acd-header-icon{background:var(--m-role-admin-dim);border:1px solid var(--m-role-admin-border);border-radius:var(--m-radius-md);font-size:20px;height:42px;justify-content:center;width:42px}.acd-header-text{flex:1 1;min-width:0}.acd-header-title{color:var(--m-text-primary);font-size:16px;font-weight:700;letter-spacing:-.015em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acd-header-sub{color:var(--m-text-muted);font-size:12px;margin-top:2px}.acd-header-badges{display:flex;flex-shrink:0;gap:var(--m-space-sm)}.acd-status-badge{align-items:center;border:1px solid #0000;border-radius:var(--m-radius-full);display:inline-flex;font-size:11px;font-weight:700;gap:4px;padding:3px 10px}.acd-status-badge--published{background:var(--m-green-dim);border-color:var(--m-green-border);color:var(--m-green)}.acd-status-badge--draft{background:var(--m-bg-card);border-color:var(--m-border-mid);color:var(--m-text-muted)}.acd-close{align-items:center;background:#0000;border:1px solid var(--m-border-mid);border-radius:var(--m-radius-sm);color:var(--m-text-muted);cursor:pointer;display:flex;flex-shrink:0;font-size:13px;height:32px;justify-content:center;transition:all var(--m-transition);width:32px}.acd-close:hover{background:var(--m-red-dim);border-color:var(--m-red-border);color:var(--m-red)}.acd-body{display:flex;flex:1 1;flex-direction:column;gap:var(--m-space-md);overflow-y:auto;padding:var(--m-space-xl);scroll-behavior:smooth}.acd-body::-webkit-scrollbar{width:5px}.acd-body::-webkit-scrollbar-track{background:#0000}.acd-body::-webkit-scrollbar-thumb{background:var(--m-border-mid);border-radius:var(--m-radius-full)}.acd-body::-webkit-scrollbar-thumb:hover{background:#c1c8d4}.acd-section{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-lg);padding:var(--m-space-lg)}.acd-section-title{color:var(--m-text-muted);font-size:11px;font-weight:700;letter-spacing:.07em;margin-bottom:var(--m-space-md);text-transform:uppercase}.acd-section-title-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--m-space-md)}.acd-section-title-row .acd-section-title{margin-bottom:0}.acd-actions-row{display:flex;flex-wrap:wrap;gap:var(--m-space-sm)}.acd-action-btn{align-items:center;background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);color:var(--m-text-secondary);cursor:pointer;display:inline-flex;font-family:var(--m-font);font-size:13px;font-weight:600;gap:6px;padding:7px 14px;transition:all var(--m-transition)}.acd-action-btn:hover{background:var(--m-bg-card-hover);border-color:var(--m-border-focus)}.acd-action-btn--danger{background:var(--m-red-dim);border-color:var(--m-red-border);color:var(--m-red)}.acd-action-btn--danger:hover{background:var(--m-red);color:#fff}.acd-content-grid{grid-gap:var(--m-space-sm);display:grid;gap:var(--m-space-sm);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.acd-content-btn{align-items:center;background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);color:var(--m-text-secondary);cursor:pointer;display:flex;font-family:var(--m-font);font-size:13px;font-weight:600;gap:6px;padding:9px 12px;transition:all var(--m-transition);white-space:nowrap}.acd-content-btn:hover{background:var(--m-role-admin-dim);border-color:var(--m-role-admin-border);color:var(--m-role-admin)}.acd-content-count{color:var(--m-text-muted);font-weight:400}.acd-textbook-link{align-items:center;background:linear-gradient(135deg,#0a0e1a,#111827);border:1px solid #00d4ff4d;border-radius:var(--m-radius-md);color:#00d4ff;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:7px 14px;text-decoration:none;transition:all var(--m-transition);white-space:nowrap}.acd-textbook-link:hover{border-color:#00d4ff99;box-shadow:0 0 12px #00d4ff26}.acd-textbook-img{height:20px;object-fit:contain;width:auto}.acd-meta-grid{grid-gap:var(--m-space-sm);display:grid;gap:var(--m-space-sm);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:var(--m-space-md)}.acd-meta-item{align-items:center;background:var(--m-bg-surface);border:1px solid var(--m-border);border-radius:var(--m-radius-md);display:flex;gap:10px;padding:10px 12px}.acd-meta-icon{flex-shrink:0;font-size:18px}.acd-meta-avatar{border-radius:50%;flex-shrink:0;height:32px;object-fit:cover;width:32px}.acd-meta-content{display:flex;flex-direction:column;min-width:0}.acd-meta-label{color:var(--m-text-faint);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.acd-meta-value{color:var(--m-text-primary);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acd-description{border-top:1px solid var(--m-border);margin-top:var(--m-space-md);padding-top:var(--m-space-md)}.acd-short-desc{color:var(--m-text-primary);font-size:14px;font-weight:700;margin:0 0 8px}.acd-long-desc{color:var(--m-text-secondary);font-size:13px;line-height:1.7;margin:0}.acd-tags{display:flex;flex-wrap:wrap;gap:var(--m-space-xs)}.acd-tag{border:1px solid #0000;border-radius:var(--m-radius-full);font-size:12px;font-weight:600;padding:4px 10px}.acd-tag--prereq{background:var(--m-amber-dim);border-color:var(--m-amber-border);color:var(--m-amber)}.acd-tag--course{background:var(--m-accent-dim);border-color:var(--m-accent-border);color:var(--m-accent)}.acd-empty-msg{color:var(--m-text-faint);font-size:13px;margin:0}.acd-grade-category{margin-bottom:var(--m-space-md)}.acd-grade-category:last-of-type{margin-bottom:0}.acd-grade-category-hdr{align-items:center;color:var(--m-text-secondary);display:flex;font-size:13px;font-weight:700;gap:8px;margin-bottom:var(--m-space-sm)}.acd-grade-total{background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-full);color:var(--m-text-muted);font-size:11px;font-weight:600;padding:2px 8px}.acd-weight-row{align-items:center;background:var(--m-bg-surface);border:1px solid var(--m-border);border-radius:var(--m-radius-md);display:flex;justify-content:space-between;margin-bottom:4px;padding:8px 12px}.acd-weight-info{align-items:center;display:flex;flex:1 1;gap:8px;min-width:0}.acd-weight-id{color:var(--m-text-muted);flex-shrink:0;font-family:var(--m-font-mono);font-size:11px;font-weight:700}.acd-weight-title{color:var(--m-text-primary);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acd-weight-ctrl{flex-shrink:0;margin-left:var(--m-space-md)}.acd-weight-display{align-items:center;display:flex;gap:6px}.acd-weight-val{color:var(--m-text-secondary);font-size:13px;font-weight:700;min-width:44px;text-align:right}.acd-weight-edit{align-items:center;display:flex;gap:4px}.acd-weight-input{background:var(--m-bg-input);border:1px solid var(--m-border-focus);border-radius:var(--m-radius-sm);box-shadow:var(--m-shadow-focus);color:var(--m-text-primary);font-family:var(--m-font);font-size:13px;font-weight:600;outline:none;padding:4px 8px;width:60px}.acd-weight-pct{color:var(--m-text-muted);font-size:13px}.acd-wbtn{align-items:center;border:1px solid #0000;border-radius:var(--m-radius-sm);cursor:pointer;display:flex;font-size:12px;height:26px;justify-content:center;transition:all var(--m-transition);width:26px}.acd-wbtn--edit{background:#0000;border-color:#0000;color:var(--m-text-faint);font-size:14px}.acd-wbtn--edit:hover{color:var(--m-accent)}.acd-wbtn--save{background:var(--m-green-dim);border-color:var(--m-green-border);color:var(--m-green)}.acd-wbtn--save:hover{background:var(--m-green);color:#fff}.acd-wbtn--cancel{background:var(--m-red-dim);border-color:var(--m-red-border);color:var(--m-red)}.acd-wbtn--cancel:hover{background:var(--m-red);color:#fff}.acd-weight-summary{align-items:center;border:1px solid #0000;border-radius:var(--m-radius-md);display:flex;font-size:13px;font-weight:700;justify-content:space-between;margin-top:var(--m-space-md);padding:10px 14px}.acd-weight-summary--valid{background:var(--m-green-dim);border-color:var(--m-green-border);color:var(--m-green)}.acd-weight-summary--invalid{background:var(--m-amber-dim);border-color:var(--m-amber-border);color:var(--m-amber)}.acd-weight-summary-label{font-weight:600}.acd-weight-summary-value{font-size:15px}.acd-weight-warning{background:var(--m-red-dim);border:1px solid var(--m-red-border);border-radius:var(--m-radius-md);color:var(--m-red);font-size:12px;font-weight:600;margin-top:var(--m-space-sm);padding:8px 12px}.acd-footer{align-items:center;background:var(--m-bg-elevated);border-top:1px solid var(--m-border);display:flex;flex-shrink:0;gap:var(--m-space-sm);padding:var(--m-space-md) var(--m-space-xl)}.acd-footer-space{flex:1 1}.acd-btn{align-items:center;border:1px solid #0000;border-radius:var(--m-radius-md);cursor:pointer;display:inline-flex;font-family:var(--m-font);font-size:13px;font-weight:600;gap:6px;padding:8px 18px;transition:all var(--m-transition)}.acd-btn--ghost{background:#0000;border-color:var(--m-border-mid);color:var(--m-text-muted)}.acd-btn--ghost:hover{background:var(--m-bg-card);color:var(--m-text-secondary)}.clm-overlay{align-items:center;animation:clm-fade var(--m-transition-md) both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a66;display:flex;inset:0;justify-content:center;padding:var(--m-space-lg);position:fixed;z-index:1000}@keyframes clm-fade{0%{opacity:0}to{opacity:1}}.clm-shell{animation:clm-in var(--m-transition-spring) both;background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-xl);box-shadow:var(--m-shadow-overlay);display:flex;flex-direction:column;font-family:var(--m-font);height:calc(100vh - 140px);max-width:var(--m-modal-md);overflow:hidden;width:100%}@keyframes clm-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.clm--admin{--role:var(--m-role-admin);--role-dim:var(--m-role-admin-dim);--role-border:var(--m-role-admin-border)}.clm--instructor{--role:var(--m-role-instructor);--role-dim:var(--m-role-instructor-dim);--role-border:var(--m-role-instructor-border)}.clm--student{--role:var(--m-role-student);--role-dim:var(--m-role-student-dim);--role-border:var(--m-role-student-border)}.clm-header{background:var(--m-bg-elevated);border-bottom:1px solid var(--m-border);gap:var(--m-space-md);padding:var(--m-space-lg) var(--m-space-xl)}.clm-header,.clm-icon{align-items:center;display:flex;flex-shrink:0}.clm-icon{background:var(--m-accent-dim);background:var(--role-dim,var(--m-accent-dim));border:1px solid var(--role-border,var(--m-accent-border));border-radius:var(--m-radius-md);font-size:20px;height:42px;justify-content:center;width:42px}.clm-title-wrap{flex:1 1;min-width:0}.clm-title{color:var(--m-text-primary);font-size:16px;font-weight:700;letter-spacing:-.01em}.clm-sub{color:var(--m-text-muted);font-size:12px;margin-top:2px}.clm-hdr-actions{align-items:center;display:flex;flex-shrink:0;gap:var(--m-space-sm)}.clm-add-btn{background:var(--m-accent-dim);background:var(--role-dim,var(--m-accent-dim));border:1px solid var(--role-border,var(--m-accent-border));border-radius:var(--m-radius-md);color:var(--m-accent);color:var(--role,var(--m-accent));cursor:pointer;font-family:var(--m-font);font-size:13px;font-weight:600;padding:7px 14px;transition:all var(--m-transition)}.clm-add-btn:hover{background:var(--m-accent);background:var(--role,var(--m-accent));color:#fff}.clm-close{align-items:center;background:#0000;border:1px solid var(--m-border-mid);border-radius:var(--m-radius-sm);color:var(--m-text-muted);cursor:pointer;display:flex;font-size:13px;height:32px;justify-content:center;transition:all var(--m-transition);width:32px}.clm-close:hover{background:var(--m-red-dim);border-color:var(--m-red-border);color:var(--m-red)}.clm-body{flex:1 1;overflow-y:auto;padding:var(--m-space-lg)}.clm-body::-webkit-scrollbar{width:4px}.clm-body::-webkit-scrollbar-thumb{background:var(--m-border-mid);border-radius:4px}.clm-empty{align-items:center;display:flex;flex-direction:column;gap:var(--m-space-md);padding:var(--m-space-2xl);text-align:center}.clm-empty-icon{font-size:40px;opacity:.3}.clm-empty-title{color:var(--m-text-muted);font-size:15px;font-weight:600}.clm-list{display:flex;flex-direction:column;gap:6px}.clm-item{align-items:center;background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-lg);display:flex;gap:var(--m-space-md);padding:var(--m-space-md) var(--m-space-lg);transition:all var(--m-transition)}.clm-item:hover{background:var(--m-bg-card);border-color:var(--role-border,var(--m-accent-border));transform:translateX(2px)}.clm-item-id{background:var(--m-accent-dim);background:var(--role-dim,var(--m-accent-dim));border:1px solid var(--role-border,var(--m-accent-border));border-radius:var(--m-radius-sm);color:var(--m-accent);color:var(--role,var(--m-accent));flex-shrink:0;font-family:var(--m-font-mono);font-size:11px;font-weight:700;padding:2px 7px;white-space:nowrap}.clm-item-info{flex:1 1;min-width:0}.clm-item-title{color:var(--m-text-primary);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clm-item-meta{color:var(--m-text-muted);font-size:12px;margin-top:2px}.clm-item-actions{display:flex;flex-shrink:0;gap:6px}.clm-view-btn{background:#0000;border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);color:var(--m-text-muted);cursor:pointer;font-family:var(--m-font);font-size:12px;font-weight:600;padding:5px 12px;transition:all var(--m-transition)}.clm-view-btn:hover{background:var(--m-accent-dim);background:var(--role-dim,var(--m-accent-dim));border-color:var(--role-border,var(--m-accent-border));color:var(--m-accent);color:var(--role,var(--m-accent))}.clm-del-btn{align-items:center;background:#0000;border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);cursor:pointer;display:flex;font-size:13px;height:30px;justify-content:center;transition:all var(--m-transition);width:30px}.clm-del-btn:hover{background:var(--m-red-dim);border-color:var(--m-red-border)}.rfl{gap:var(--m-space-sm)}.rfl,.rfl-list{display:flex;flex-direction:column}.rfl-list{gap:5px}.rfl-list--new{margin-top:4px}.rfl-item{align-items:center;background:var(--m-bg-surface);border:1px solid var(--m-border);border-radius:var(--m-radius-md);display:flex;gap:var(--m-space-sm);padding:8px 12px;transition:border-color var(--m-transition)}.rfl-item:hover{border-color:var(--m-border-mid)}.rfl-item--new{background:var(--m-accent-dim);border-color:var(--m-accent-border)}.rfl-item-icon{flex-shrink:0;font-size:14px}.rfl-item-name{color:var(--m-text-primary);flex:1 1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rfl-item-size{color:var(--m-text-faint);flex-shrink:0;font-size:11px}.rfl-item-actions{display:flex;flex-shrink:0;gap:4px}.rfl-btn{align-items:center;background:#0000;border:1px solid var(--m-border-mid);border-radius:var(--m-radius-sm);cursor:pointer;display:flex;font-size:12px;height:26px;justify-content:center;transition:all var(--m-transition);width:26px}.rfl-btn--dl:hover{background:var(--m-accent-dim);border-color:var(--m-accent-border);color:var(--m-accent)}.rfl-btn--rm:hover{background:var(--m-red-dim);border-color:var(--m-red-border);color:var(--m-red)}.rfl-upload{align-items:center;border:2px dashed var(--m-border-mid);border-radius:var(--m-radius-lg);cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:var(--m-space-md);text-align:center;transition:all var(--m-transition)}.rfl-upload:hover{background:var(--m-accent-dim);border-color:var(--m-accent)}.rfl-upload-input{display:none}.rfl-upload-icon{font-size:20px;opacity:.5}.rfl-upload-label{color:var(--m-text-secondary);font-size:13px;font-weight:600}.rfl-upload-hint{color:var(--m-text-faint);font-size:11px}.rfl-progress{align-items:center;background:var(--m-accent-dim);border:1px solid var(--m-accent-border);border-radius:var(--m-radius-md);color:var(--m-accent);display:flex;font-size:12px;gap:var(--m-space-sm);padding:var(--m-space-sm) var(--m-space-md)}.rfl-progress-spin{animation:rfl-spin .7s linear infinite;border:2px solid var(--m-accent-border);border-radius:50%;border-top-color:var(--m-accent);flex-shrink:0;height:13px;width:13px}@keyframes rfl-spin{to{transform:rotate(1turn)}}.lm-overlay{align-items:center;animation:lm-fade var(--m-transition-md) both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a66;display:flex;inset:0;justify-content:center;padding:var(--m-space-lg);position:fixed;z-index:1000}@keyframes lm-fade{0%{opacity:0}to{opacity:1}}.lm-shell{animation:lm-in var(--m-transition-spring) both;background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-xl);box-shadow:var(--m-shadow-overlay);display:flex;flex-direction:column;font-family:var(--m-font);height:calc(100vh - 148px);max-width:var(--m-modal-lg);overflow:hidden;width:100%}@keyframes lm-in{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.lm--admin{--role:var(--m-role-admin);--role-dim:var(--m-role-admin-dim);--role-border:var(--m-role-admin-border)}.lm--instructor{--role:var(--m-role-instructor);--role-dim:var(--m-role-instructor-dim);--role-border:var(--m-role-instructor-border)}.lm--student{--role:var(--m-role-student);--role-dim:var(--m-role-student-dim);--role-border:var(--m-role-student-border)}.lm-header{background:var(--m-bg-elevated);border-bottom:1px solid var(--m-border);gap:var(--m-space-md);padding:var(--m-space-lg) var(--m-space-xl)}.lm-header,.lm-icon{align-items:center;display:flex;flex-shrink:0}.lm-icon{background:var(--m-accent-dim);background:var(--role-dim,var(--m-accent-dim));border:1px solid var(--role-border,var(--m-accent-border));border-radius:var(--m-radius-md);font-size:20px;height:42px;justify-content:center;width:42px}.lm-title-wrap{flex:1 1;min-width:0}.lm-title{color:var(--m-text-primary);font-size:16px;font-weight:700;letter-spacing:-.01em}.lm-sub{align-items:center;color:var(--m-text-muted);display:flex;font-size:12px;gap:var(--m-space-sm);margin-top:2px}.lm-edit-pill{background:var(--m-purple-dim);border:1px solid var(--m-purple-border);border-radius:var(--m-radius-full);color:var(--m-purple);font-size:10px;font-weight:700;padding:1px 7px}.lm-hdr-actions{flex-shrink:0;gap:var(--m-space-sm)}.lm-close,.lm-hdr-actions{align-items:center;display:flex}.lm-close{background:#0000;border:1px solid var(--m-border-mid);border-radius:var(--m-radius-sm);color:var(--m-text-muted);cursor:pointer;font-size:13px;height:32px;justify-content:center;transition:all var(--m-transition);width:32px}.lm-close:hover{background:var(--m-red-dim);border-color:var(--m-red-border);color:var(--m-red)}.lm-btn{border:1px solid #0000;border-radius:var(--m-radius-md);cursor:pointer;font-family:var(--m-font);font-size:13px;font-weight:600;padding:6px 14px;transition:all var(--m-transition)}.lm-btn--edit{background:var(--m-bg-card);border-color:var(--m-border-mid);color:var(--m-text-secondary)}.lm-btn--edit:hover{border-color:var(--m-border-focus)}.lm-btn--save{background:var(--m-green);border-color:var(--m-green);color:#fff}.lm-btn--save:hover{background:#15803d}.lm-btn--ghost{background:#0000;border-color:var(--m-border-mid);color:var(--m-text-muted)}.lm-btn--ghost:hover{background:var(--m-bg-card)}.lm-status{align-items:center;background:var(--m-bg-elevated);border-bottom:1px solid var(--m-border);display:flex;flex-shrink:0;gap:var(--m-space-sm);padding:9px var(--m-space-xl)}.lm-chip{background:var(--m-bg-card);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-full);color:var(--m-text-muted);font-size:11px;font-weight:600;padding:3px 9px}.lm-chip--role{background:var(--role-dim);border-color:var(--role-border);color:var(--m-accent);color:var(--role,var(--m-accent))}.lm-body{flex:1 1;overflow-y:auto;padding:var(--m-space-xl)}.lm-body::-webkit-scrollbar{width:4px}.lm-body::-webkit-scrollbar-thumb{background:var(--m-border-mid);border-radius:4px}.lm-view{display:flex;flex-direction:column;gap:var(--m-space-md)}.lm-section{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-lg);padding:var(--m-space-lg)}.lm-section-title{color:var(--m-text-muted);font-size:11px;font-weight:700;letter-spacing:.07em;margin-bottom:var(--m-space-sm);text-transform:uppercase}.lm-text{color:var(--m-text-secondary);font-size:14px;line-height:1.7;margin:0}.lm-link{align-items:center;background:var(--m-accent-dim);border:1px solid var(--m-accent-border);border-radius:var(--m-radius-md);color:var(--m-accent);display:inline-flex;font-size:13px;gap:6px;padding:6px 12px;text-decoration:none;transition:all var(--m-transition);word-break:break-all}.lm-link:hover{background:#3b82f62e}.lm-form{gap:var(--m-space-md)}.lm-field,.lm-form{display:flex;flex-direction:column}.lm-field{gap:5px}.lm-label{color:var(--m-text-secondary);font-size:12px;font-weight:600}.lm-req{color:var(--m-red)}.lm-input,.lm-textarea{background:var(--m-bg-input);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);box-sizing:border-box;color:var(--m-text-primary);font-family:var(--m-font);font-size:13px;outline:none;padding:9px 12px;transition:border-color var(--m-transition),box-shadow var(--m-transition);width:100%}.lm-input:focus,.lm-textarea:focus{border-color:var(--m-border-focus);box-shadow:var(--m-shadow-focus)}.lm-textarea{line-height:1.6;resize:vertical}.grading-overlay{align-items:center;animation:grading-fade-in .2s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#000000bf;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9000}@keyframes grading-fade-in{0%{opacity:0}to{opacity:1}}.grading-modal{animation:grading-slide-up .25s cubic-bezier(.16,1,.3,1);background:#0f1623;border:1px solid #1e2d40;border-radius:16px;box-shadow:0 24px 80px #0009;display:flex;flex-direction:column;font-family:Segoe UI,system-ui,sans-serif;max-height:90vh;max-width:680px;overflow:hidden;width:100%}@keyframes grading-slide-up{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.grading-header{align-items:center;background:#0d1420;border-bottom:1px solid #1e2d40;display:flex;flex-shrink:0;justify-content:space-between;padding:18px 22px}.grading-header-left{align-items:center;display:flex;gap:12px}.grading-header-icon{font-size:24px;line-height:1}.grading-header-title{color:#f1f5f9;font-size:18px;font-weight:700;line-height:1.2}.grading-header-sub{color:#64748b;font-size:12px;margin-top:2px}.grading-close-btn{background:none;border:none;border-radius:6px;color:#64748b;cursor:pointer;font-size:20px;line-height:1;padding:4px 8px;transition:color .2s,background .2s}.grading-close-btn:hover{background:#1e2736;color:#e2e8f0}.grading-status-bar{align-items:center;background:#0d1420;border-bottom:1px solid #1e2d40;display:flex;flex-shrink:0;flex-wrap:wrap;gap:12px;padding:10px 22px}.grading-meta-text{color:#64748b;font-size:11px}.grading-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-weight:600;padding:2px 10px}.grading-badge--success{background:#10b98121;border:1px solid #10b98159;color:#10b981}.grading-badge--pending{background:#f59e0b21;border:1px solid #f59e0b59;color:#f59e0b}.grading-badge--confidence-high{background:#10b98121;border:1px solid #10b98159;color:#10b981}.grading-badge--confidence-medium{background:#f59e0b21;border:1px solid #f59e0b59;color:#f59e0b}.grading-badge--confidence-low{background:#ef444421;border:1px solid #ef444459;color:#ef4444}.grading-tab-bar{background:#0d1420;border-bottom:1px solid #1e2d40;display:flex;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.grading-tab-bar::-webkit-scrollbar{display:none}.grading-tab{background:none;border:none;border-bottom:2px solid #0000;color:#64748b;cursor:pointer;font-size:12px;font-weight:500;padding:10px 16px;transition:color .2s,border-color .2s;white-space:nowrap}.grading-tab:hover{color:#94a3b8}.grading-tab--active{border-bottom-color:#a78bfa;color:#a78bfa}.grading-body{flex:1 1;overflow-y:auto;padding:18px 22px;scrollbar-color:#1e2d40 #0000;scrollbar-width:thin}.grading-body::-webkit-scrollbar{width:5px}.grading-body::-webkit-scrollbar-track{background:#0000}.grading-body::-webkit-scrollbar-thumb{background:#1e2d40;border-radius:999px}.grading-score-row{align-items:center;background:#0d1420;border:1px solid #1e2d40;border-radius:12px;display:flex;gap:24px;margin-bottom:16px;padding:16px}.grading-score-label{font-size:22px;font-weight:700;line-height:1.2}.grading-score-label--excellent{color:#10b981}.grading-score-label--great{color:#34d399}.grading-score-label--good{color:#f59e0b}.grading-score-label--fair{color:#fb923c}.grading-score-label--needs-work{color:#ef4444}.grading-score-reasoning{color:#64748b;font-size:13px;line-height:1.5;margin-top:4px}.grading-score-confidence-row{align-items:center;display:flex;gap:8px;margin-top:10px}.grading-score-confidence-label{color:#64748b;font-size:11px}.grading-ring{display:block;flex-shrink:0}.grading-ring__track{fill:none;stroke:#1e2736;stroke-width:10}.grading-ring__progress{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dasharray 1s ease}.grading-ring__score{font-weight:700}.grading-ring__max,.grading-ring__score{font-family:JetBrains Mono,Courier New,monospace}.grading-ring__max{fill:#6b7280}.grading-section{border:1px solid #1e2d40;border-radius:10px;margin-bottom:12px;overflow:hidden}.grading-section-toggle{align-items:center;background:#0d1420;border:none;color:#94a3b8;cursor:pointer;display:flex;font-size:13px;font-weight:600;justify-content:space-between;padding:10px 14px;text-align:left;transition:background .15s;width:100%}.grading-section-toggle:hover{background:#111927}.grading-section-toggle-chevron{font-size:11px;opacity:.5}.grading-section-body{background:#0f1623;padding:14px}.grading-feedback-text{color:#cbd5e1;font-size:13px;line-height:1.65;margin:0}.grading-req-list{display:flex;flex-direction:column;gap:8px}.grading-req-card{background:#0d1420;border:1px solid #1e2d40;border-radius:8px;overflow:hidden}.grading-req-card--pass{border-left:3px solid #10b981}.grading-req-card--fail{border-left:3px solid #ef4444}.grading-req-header{align-items:center;background:none;border:none;cursor:pointer;display:flex;gap:10px;padding:10px 13px;text-align:left;transition:background .15s;width:100%}.grading-req-header:hover{background:#111927}.grading-req-status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.grading-req-status-dot--pass{background:#10b981}.grading-req-status-dot--fail{background:#ef4444}.grading-req-key{color:#a78bfa;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;min-width:28px}.grading-req-desc{color:#94a3b8;flex:1 1;font-size:12px;line-height:1.4;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grading-req-right{align-items:center;display:flex;flex-shrink:0;gap:8px}.grading-req-tier{border-radius:4px;font-size:10px;font-weight:600;padding:2px 7px}.grading-tier--full{background:#10b98126;color:#10b981}.grading-tier--partial{background:#f59e0b26;color:#f59e0b}.grading-tier--fail{background:#ef444426;color:#ef4444}.grading-req-score{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.grading-req-score-max{font-weight:400}.grading-req-chevron,.grading-req-score-max{color:#64748b;font-size:10px}.grading-req-bar-track{background:#1e2736;height:3px}.grading-req-bar-fill{height:100%;transition:width .8s ease}.grading-req-feedback{background:#060d17;border-top:1px solid #1e2736;padding:10px 13px 12px}.grading-req-feedback-label{color:#64748b;display:block;font-size:10px;letter-spacing:.06em;margin-bottom:5px;text-transform:uppercase}.grading-req-feedback-text{color:#94a3b8;font-size:12px;line-height:1.6;margin:0}.grading-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.grading-stat-cell{background:#0d1420;border:1px solid #1e2d40;border-radius:8px;padding:10px 14px}.grading-stat-cell-label{color:#64748b;font-size:11px;letter-spacing:.05em;margin-bottom:4px;text-transform:uppercase}.grading-stat-cell-value{color:#e2e8f0;font-family:JetBrains Mono,Courier New,monospace;font-size:15px;font-weight:700}.grading-pending-notice{background:#f59e0b12;border:1px solid #f59e0b33;border-radius:8px;color:#fbbf24;font-size:13px;margin-top:16px;padding:12px}.grading-snapshot-card{background:#0d1420;border:1px solid #1e2d40;border-radius:8px;margin-bottom:6px;overflow:hidden}.grading-snapshot-toggle{align-items:center;background:none;border:none;color:#e2e8f0;cursor:pointer;display:flex;padding:9px 14px;transition:background .15s;width:100%}.grading-snapshot-toggle:hover{background:#111927}.grading-snapshot-index{color:#38bdf8;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px}.grading-snapshot-time{color:#94a3b8;flex:1 1;font-size:11px;margin-left:12px;text-align:left}.grading-snapshot-counts{color:#64748b;flex-shrink:0;font-size:11px}.grading-snapshot-body{border-top:1px solid #1e2d40;padding:10px 14px}.grading-snapshot-section-label{color:#64748b;font-size:10px;letter-spacing:.05em;margin-bottom:5px;text-transform:uppercase}.grading-snapshot-sensors{margin-bottom:10px}.grading-snapshot-row{display:flex;font-size:12px;justify-content:space-between;padding:2px 0}.grading-snapshot-row-key{color:#94a3b8}.grading-snapshot-actuator-entry,.grading-snapshot-row-val{color:#e2e8f0;font-family:JetBrains Mono,monospace}.grading-snapshot-actuator-entry{font-size:12px;padding:2px 0}.grading-snapshot-actuator-key{color:#94a3b8}.grading-code-block{background:#060d17;border:1px solid #1e2d40;border-radius:8px;max-height:420px;overflow-y:auto;padding:14px 16px;scrollbar-color:#1e2d40 #0000;scrollbar-width:thin}.grading-code-block::-webkit-scrollbar{width:5px}.grading-code-block::-webkit-scrollbar-thumb{background:#1e2d40;border-radius:999px}.grading-serial-line{font-family:JetBrains Mono,Courier New,monospace;font-size:12px;line-height:1.5;margin-bottom:2px}.grading-serial-timestamp{color:#475569}.grading-serial-msg--out{color:#94a3b8}.grading-serial-msg--in{color:#38bdf8}.grading-code-pre{color:#94a3b8;font-family:JetBrains Mono,Courier New,monospace;font-size:12px;line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.grading-empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px 20px;text-align:center}.grading-empty-icon{font-size:48px;line-height:1;margin-bottom:12px}.grading-empty-title{color:#e2e8f0;font-size:16px;font-weight:600;margin-bottom:8px}.grading-empty-desc{color:#64748b;font-size:13px;line-height:1.6;margin:0;max-width:340px}.grading-empty-desc strong{color:#a78bfa}.grading-validation-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:40px 20px;text-align:center}.grading-validation-empty-icon{font-size:40px;line-height:1;margin-bottom:10px}.grading-validation-empty-text{color:#64748b;font-size:13px}.grading-validation-summary{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.grading-validation-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:3px 11px}.grading-validation-pill--error{background:#ef44441f;border:1px solid #ef44444d;color:#ef4444}.grading-validation-pill--warning{background:#f59e0b1f;border:1px solid #f59e0b4d;color:#f59e0b}.grading-validation-pill--info{background:#38bdf81f;border:1px solid #38bdf84d;color:#38bdf8}.grading-validation-pill--success{background:#10b9811f;border:1px solid #10b9814d;color:#10b981}.grading-validation-list{display:flex;flex-direction:column;gap:7px}.grading-validation-item{align-items:flex-start;background:#0d1420;border:1px solid #1e2d40;border-radius:8px;display:flex;gap:10px;padding:10px 13px}.grading-validation-item--error{background:#ef44440d;border-left:3px solid #ef4444}.grading-validation-item--warning{background:#f59e0b0d;border-left:3px solid #f59e0b}.grading-validation-item--info{background:#38bdf80d;border-left:3px solid #38bdf8}.grading-validation-item-icon{flex-shrink:0;font-size:14px;margin-top:1px}.grading-validation-item-body{flex:1 1;min-width:0}.grading-validation-item-message{color:#cbd5e1;font-size:13px;line-height:1.5;word-break:break-word}.grading-validation-item-component{color:#64748b;font-family:JetBrains Mono,monospace;font-size:11px;margin-top:4px}.grading-validation-item-type{align-self:flex-start;border-radius:4px;flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.06em;padding:2px 7px;text-transform:uppercase}.grading-validation-item-type--error{background:#ef444426;color:#ef4444}.grading-validation-item-type--warning{background:#f59e0b26;color:#f59e0b}.grading-validation-item-type--info{background:#38bdf826;color:#38bdf8}.grading-footer{align-items:center;background:#0d1420;border-top:1px solid #1e2d40;display:flex;flex-shrink:0;gap:10px;justify-content:flex-end;padding:14px 22px}.grading-footer-result{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;gap:2px}.grading-footer-result-score{font-family:JetBrains Mono,Courier New,monospace;font-size:20px;font-weight:800;line-height:1.1}.grading-footer-result-reqs{color:#64748b;font-size:11px}.grading-cancel-btn{background:#1e2736;border:1px solid #2d3f55;border-radius:8px;color:#94a3b8;cursor:pointer;font-size:13px;font-weight:500;padding:9px 20px;transition:background .2s,color .2s}.grading-cancel-btn:hover{background:#243044;color:#e2e8f0}.grading-submit-btn{background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:8px;box-shadow:0 0 18px #7c3aed45;color:#fff;cursor:pointer;font-size:13px;font-weight:700;padding:9px 22px;transition:opacity .2s,box-shadow .2s}.grading-submit-btn:hover:not(:disabled){box-shadow:0 0 28px #7c3aed73}.grading-submit-btn:disabled{cursor:not-allowed;opacity:.55}.grading-submit-btn--graded{background:#1e2736;border:1px solid #10b98159;box-shadow:none;color:#10b981;font-weight:600}@media (max-width:520px){.grading-modal{border-radius:12px;max-height:95vh}.grading-score-row{align-items:flex-start;flex-direction:column;gap:14px}.grading-stats-grid{grid-template-columns:1fr}.grading-body,.grading-footer,.grading-header{padding-left:16px;padding-right:16px}.grading-req-desc{display:none}}.grading-footer-result-max{color:#64748b;font-size:14px;font-weight:400}.grading-pending-state{align-items:center;display:flex;flex-direction:column;gap:14px;justify-content:center;padding:48px 20px;text-align:center}.grading-pending-spinner{animation:grading-spin .85s linear infinite;border:4px solid #1e2736;border-radius:50%;border-top-color:#a78bfa;height:44px;width:44px}@keyframes grading-spin{to{transform:rotate(1turn)}}.grading-pending-title{color:#e2e8f0;font-size:15px;font-weight:600}.grading-pending-desc{color:#64748b;font-size:13px;line-height:1.6;margin:0;max-width:300px}.grading-footer-result-reqs--waiting{color:#a78bfa;font-size:12px;font-style:italic}.am-overlay{align-items:center;animation:am-fade var(--m-transition-md) both;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f172a73;display:flex;inset:0;justify-content:center;padding:var(--m-space-lg);position:fixed;top:-50px;z-index:1000}@keyframes am-fade{0%{opacity:0}to{opacity:1}}.am-shell{animation:am-in var(--m-transition-spring) both;background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-xl);box-shadow:var(--m-shadow-overlay);display:flex;flex-direction:column;font-family:var(--m-font);max-height:calc(100vh - 140px);max-width:var(--m-modal-xl);overflow:hidden;width:100%}@keyframes am-in{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.am--admin{--role:var(--m-role-admin);--role-dim:var(--m-role-admin-dim);--role-border:var(--m-role-admin-border)}.am--instructor{--role:var(--m-role-instructor);--role-dim:var(--m-role-instructor-dim);--role-border:var(--m-role-instructor-border)}.am--student{--role:var(--m-role-student);--role-dim:var(--m-role-student-dim);--role-border:var(--m-role-student-border)}.am--lab{--type:var(--m-lab-color);--type-dim:var(--m-lab-dim)}.am--quiz{--type:var(--m-quiz-color);--type-dim:var(--m-quiz-dim)}.am--exam{--type:var(--m-exam-color);--type-dim:var(--m-exam-dim)}.am-header{background:var(--m-bg-elevated);border-bottom:1px solid var(--m-border);gap:var(--m-space-md);padding:var(--m-space-lg) var(--m-space-xl)}.am-hdr-icon,.am-header{align-items:center;display:flex;flex-shrink:0}.am-hdr-icon{background:var(--m-accent-dim);background:var(--type-dim,var(--m-accent-dim));border:1px solid #00000014;border-radius:var(--m-radius-md);font-size:22px;height:44px;justify-content:center;width:44px}.am-hdr-text{flex:1 1;min-width:0}.am-hdr-title{color:var(--m-text-primary);font-size:16px;font-weight:700;letter-spacing:-.015em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.am-hdr-sub{color:var(--m-text-muted);font-size:12px;margin-top:2px}.am-hdr-chips{display:flex;flex-shrink:0;gap:5px}.am-type-chip{background:var(--m-accent-dim);background:var(--type-dim,var(--m-accent-dim));color:var(--m-accent);color:var(--type,var(--m-accent));font-weight:700}.am-role-chip,.am-type-chip{border-radius:var(--m-radius-full);font-size:11px;padding:3px 9px}.am-role-chip{background:var(--m-accent-dim);background:var(--role-dim,var(--m-accent-dim));color:var(--m-accent);color:var(--role,var(--m-accent));font-weight:600}.am-hdr-actions{flex-shrink:0;gap:var(--m-space-sm)}.am-close,.am-hdr-actions{align-items:center;display:flex}.am-close{background:#0000;border:1px solid var(--m-border-mid);border-radius:var(--m-radius-sm);color:var(--m-text-muted);cursor:pointer;font-size:13px;height:32px;justify-content:center;transition:all var(--m-transition);width:32px}.am-close:hover{background:var(--m-red-dim);border-color:var(--m-red-border);color:var(--m-red)}.am-phase-bar{background:var(--m-bg-elevated);border-bottom:1px solid var(--m-border);display:flex;flex-shrink:0;padding:0 var(--m-space-xl)}.am-phase-step{align-items:center;border-bottom:2px solid #0000;color:var(--m-text-faint);display:flex;font-size:12px;font-weight:600;gap:6px;padding:10px var(--m-space-lg);transition:all var(--m-transition);white-space:nowrap}.am-phase-step--active{border-bottom-color:var(--type,var(--m-accent));color:var(--m-accent);color:var(--type,var(--m-accent))}.am-phase-step--done{color:var(--m-green)}.am-phase-dot{background:currentColor;border-radius:50%;height:6px;width:6px}.am-status-bar{align-items:center;background:var(--m-bg-elevated);border-bottom:1px solid var(--m-border);display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--m-space-md);padding:9px var(--m-space-xl)}.am-meta{color:var(--m-text-muted);font-size:12px}.am-status-chip{border-radius:var(--m-radius-full);font-size:11px;font-weight:600;padding:2px 9px}.am-status-chip--graded{background:var(--m-green-dim);color:var(--m-green)}.am-status-chip--submitted{background:var(--m-amber-dim);color:var(--m-amber)}.am-body{flex:1 1;overflow-y:auto;padding:var(--m-space-xl)}.am-body::-webkit-scrollbar{width:5px}.am-body::-webkit-scrollbar-thumb{background:var(--m-border-mid);border-radius:4px}.am-section{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-lg);padding:var(--m-space-lg)}.am-section,.am-section-title{margin-bottom:var(--m-space-md)}.am-section-title{color:var(--m-text-muted);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.am-text{color:var(--m-text-secondary);font-size:14px;line-height:1.7;margin:0;white-space:pre-line}.am-info-grid{display:flex;flex-wrap:wrap;gap:var(--m-space-sm);margin-bottom:var(--m-space-md)}.am-badge{align-items:center;background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-md);display:flex;flex-direction:column;min-width:80px;padding:var(--m-space-sm) var(--m-space-md)}.am-badge-label{color:var(--m-text-faint);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.am-badge-value{color:var(--m-text-primary);font-size:16px;font-weight:700;margin-top:2px}.am-q-list{display:flex;flex-direction:column;gap:5px}.am-sub-row{align-items:center;background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-md);cursor:pointer;display:flex;gap:var(--m-space-md);padding:var(--m-space-sm) var(--m-space-md);transition:all var(--m-transition)}.am-sub-row:hover{background:var(--m-bg-card);border-color:var(--m-border-mid);transform:translateX(2px)}.am-sub-name{color:var(--m-text-primary);flex:1 1;font-size:13px;font-weight:600}.am-sub-date{color:var(--m-text-muted);font-size:12px}.am-sub-chip{border-radius:var(--m-radius-full);font-size:11px;font-weight:600;padding:2px 8px}.am-sub-chip--graded{background:var(--m-green-dim);color:var(--m-green)}.am-sub-chip--pending{background:var(--m-amber-dim);color:var(--m-amber)}.am-sub-arrow{color:var(--m-text-faint)}.am-attempt{display:flex;flex-direction:column;gap:var(--m-space-md)}.am-attempt-hdr{margin-bottom:4px}.am-attempt-title{color:var(--m-text-primary);font-size:18px;font-weight:700;letter-spacing:-.015em;margin:0 0 8px}.am-attempt-info{color:var(--m-text-muted);display:flex;font-size:13px;gap:var(--m-space-lg)}.am-upload-banner{align-items:flex-start;background:var(--m-accent-dim);border:1px solid var(--m-accent-border);border-radius:var(--m-radius-md);color:var(--m-text-primary);display:flex;font-size:13px;gap:var(--m-space-md);padding:var(--m-space-md)}.am-upload-spin{animation:am-spin .7s linear infinite;border:2px solid var(--m-accent-border);border-radius:50%;border-top-color:var(--m-accent);flex-shrink:0;height:16px;margin-top:2px;width:16px}@keyframes am-spin{to{transform:rotate(1turn)}}.am-upload-note{color:var(--m-text-muted);font-size:11px;margin:2px 0 0}.am-grading{display:flex;flex-direction:column;gap:var(--m-space-md)}.am-grading-info{border:1px solid var(--m-border);border-left:3px solid var(--m-role-instructor);color:var(--m-text-secondary);font-size:13px;padding:var(--m-space-md) var(--m-space-lg)}.am-grading-info,.am-overall{background:var(--m-bg-card);border-radius:var(--m-radius-lg)}.am-overall{border:1px solid var(--m-border);border-top:2px solid var(--m-role-instructor);display:flex;flex-direction:column;gap:var(--m-space-sm);padding:var(--m-space-lg)}.am-textarea{background:var(--m-bg-input);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);box-sizing:border-box;color:var(--m-text-primary);font-family:var(--m-font);font-size:13px;line-height:1.6;outline:none;padding:9px 12px;resize:vertical;transition:border-color var(--m-transition),box-shadow var(--m-transition);width:100%}.am-textarea:focus{border-color:var(--m-border-focus);box-shadow:var(--m-shadow-focus)}.am-results{display:flex;flex-direction:column;gap:var(--m-space-md)}.am-score-card{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-xl);gap:var(--m-space-xl);padding:var(--m-space-xl)}.am-ring-wrap,.am-score-card{align-items:center;display:flex}.am-ring-wrap{flex-direction:column;flex-shrink:0;gap:6px}.am-ring-pct{font-size:13px;font-weight:700}.am-score-info{flex:1 1}.am-score-label{color:var(--m-text-muted);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.am-score-num{font-size:28px;font-weight:800;letter-spacing:-.02em;margin:4px 0}.am-pending-note{color:var(--m-amber);font-size:13px;margin:6px 0 0}.am-footer{align-items:center;background:var(--m-bg-elevated);border-top:1px solid var(--m-border);display:flex;flex-shrink:0;gap:var(--m-space-sm);justify-content:flex-end;padding:var(--m-space-md) var(--m-space-xl)}.am-footer-space{flex:1 1}.am-exhausted{background:var(--m-amber-dim);border:1px solid var(--m-amber-border);color:var(--m-amber);padding:8px 14px}.am-btn,.am-exhausted{border-radius:var(--m-radius-md);font-size:13px;font-weight:600}.am-btn{align-items:center;border:1px solid #0000;cursor:pointer;display:inline-flex;font-family:var(--m-font);gap:6px;padding:8px 18px;transition:all var(--m-transition);white-space:nowrap}.am-btn:disabled{cursor:not-allowed;opacity:.45}.am-btn--sm{font-size:12px;padding:5px 12px}.am-btn--primary{background:var(--m-accent);background:var(--type,var(--m-accent));border-color:var(--type,var(--m-accent));color:#fff}.am-btn--primary:hover:not(:disabled){box-shadow:0 2px 8px #00000026;filter:brightness(.9)}.am-btn--secondary{background:var(--m-bg-card);border-color:var(--m-border-mid);color:var(--m-text-secondary)}.am-btn--secondary:hover:not(:disabled){background:var(--m-bg-card-hover)}.am-btn--simulation{background:var(--m-bg-blackcard);border-color:var(--m-border-mid);color:var(--m-text-white)}.am-btn--simulation:hover:not(:disabled){background:var(--m-bg-blackcard-hover)}.am-btn--ghost{background:#0000;border-color:var(--m-border-mid);color:var(--m-text-muted)}.am-btn--ghost:hover:not(:disabled){background:var(--m-bg-card);color:var(--m-text-secondary)}.am-btn--success{background:var(--m-green-dim);border-color:var(--m-green-border);color:var(--m-green)}.am-btn--success:hover:not(:disabled){background:var(--m-green);color:#fff}.am-overview{display:flex;flex-direction:column;gap:4px}.am-edit-pill{background:#7c3aed1a;border:1px solid #7c3aed4d;border-radius:999px;color:#7c3aed;display:inline-block;font-size:10px;font-weight:700;margin-left:8px;padding:1px 8px;vertical-align:middle}.am-edit-form{display:flex;flex-direction:column;gap:var(--m-space-md)}.am-edit-row{grid-gap:var(--m-space-md);display:grid;gap:var(--m-space-md);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.am-edit-field{display:flex;flex-direction:column;gap:5px}.am-edit-label{color:var(--m-text-secondary);font-size:12px;font-weight:600}.am-edit-req{color:var(--m-red)}.am-edit-label-sub{color:var(--m-text-faint);font-size:11px;font-weight:400;margin-left:2px}.am-edit-input,.am-edit-textarea{background:var(--m-bg-input);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);box-sizing:border-box;color:var(--m-text-primary);font-family:var(--m-font);font-size:13px;outline:none;padding:9px 12px;transition:border-color var(--m-transition),box-shadow var(--m-transition);width:100%}.am-edit-input:focus,.am-edit-textarea:focus{border-color:var(--m-border-focus);box-shadow:var(--m-shadow-focus)}.am-edit-textarea{line-height:1.6;resize:vertical}.am-edit-questions-note{align-items:center;background:var(--m-bg-elevated);border:1px dashed var(--m-border-mid);border-radius:var(--m-radius-md);color:var(--m-text-muted);display:flex;font-size:12px;gap:8px;padding:10px 14px}.am-collapsible{border:1px solid var(--m-border);border-radius:var(--m-radius-lg);margin-bottom:var(--m-space-sm);overflow:hidden}.am-collapsible-header{align-items:center;background:var(--m-bg-elevated);border:none;cursor:pointer;display:flex;gap:var(--m-space-sm);justify-content:space-between;padding:var(--m-space-md) var(--m-space-lg);text-align:left;transition:background var(--m-transition);width:100%}.am-collapsible-header:hover{background:var(--m-bg-card-hover)}.am-collapsible-title{align-items:center;color:var(--m-text-primary);display:flex;font-size:13px;font-weight:700;gap:4px}.am-collapsible-count{color:var(--m-text-muted);font-weight:500}.am-collapsible-chevron{color:var(--m-text-faint);flex-shrink:0;font-size:12px}.am-collapsible-body{background:var(--m-bg-surface);gap:5px;padding:var(--m-space-sm) var(--m-space-md)}.am-collapsible--info>.am-collapsible-header{background:#e0f2fe;background:var(--m-lab-dim,#e0f2fe);border-bottom:2px solid #bae6fd;border-bottom:2px solid var(--m-lab-border,#bae6fd)}.am-collapsible--info .am-collapsible-title{color:#0369a1;color:var(--m-lab-color,#0369a1)}.am-collapsible--iot>.am-collapsible-header{background:#f0fdfa;background:var(--m-teal-dim,#f0fdfa);border-bottom:2px solid #99f6e4;border-bottom:2px solid var(--m-teal-border,#99f6e4)}.am-collapsible--iot .am-collapsible-title{color:#0d9488;color:var(--m-teal,#0d9488)}.am-collapsible--postlab>.am-collapsible-header{background:#fffbeb;background:var(--m-amber-dim,#fffbeb);border-bottom:2px solid #fde68a;border-bottom:2px solid var(--m-amber-border,#fde68a)}.am-collapsible--postlab .am-collapsible-title{color:#d97706;color:var(--m-amber,#d97706)}.am-q-row{background:var(--m-bg-surface);border:1px solid var(--m-border);border-radius:var(--m-radius-md);overflow:hidden;transition:border-color var(--m-transition),box-shadow var(--m-transition)}.am-q-row--open,.am-q-row:hover{border-color:var(--m-border-mid);box-shadow:0 2px 8px #00000014;box-shadow:var(--m-shadow-card,0 2px 8px #00000014)}.am-q-row-header{grid-gap:var(--m-space-md);align-items:center;background:var(--m-bg-elevated);border:none;cursor:pointer;display:grid;gap:var(--m-space-md);grid-template-columns:minmax(110px,auto) 1fr auto auto;justify-items:end;min-height:48px;padding:11px var(--m-space-md);text-align:left;transition:background var(--m-transition);width:100%}.am-q-row-header:hover{background:var(--m-bg-card-hover)}.am-q-row-header--open{background:var(--m-bg-card)}.am-q-row--edit .am-q-row-header--open{background:#fffbeb;background:var(--m-amber-dim,#fffbeb)}.am-q-row--grading .am-q-row-header--open{background:#f5f3ff;background:var(--m-role-instructor-dim,#f5f3ff)}.am-q-row--attempt .am-q-row-header--open{background:#f0fdf4;background:var(--m-role-student-dim,#f0fdf4)}.am-q-row-num{color:var(--m-accent);color:var(--type,var(--m-accent));font-size:11px;font-weight:700;white-space:nowrap}.am-q-row-text{color:var(--m-text-secondary);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.am-q-row-meta{align-items:center;display:flex;flex-shrink:0;gap:6px}.am-q-row-chevron{color:var(--m-text-faint);flex-shrink:0;font-size:10px}.am-type-badge{background:var(--m-accent-dim);background:var(--type-dim,var(--m-accent-dim));color:var(--m-accent);color:var(--type,var(--m-accent));font-size:10px;text-transform:capitalize}.am-points-badge,.am-type-badge{border-radius:var(--m-radius-full);font-weight:700;padding:2px 8px;white-space:nowrap}.am-points-badge{background:var(--m-bg-point);border:1px solid var(--m-border-mid);color:var(--m-text-secondary);font-size:11px}.am-answered-dot,.am-graded-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.am-answered-dot{background:#3b82f6;background:var(--m-accent,#3b82f6)}.am-graded-dot{background:var(--m-green)}.am-q-row-body{background:var(--m-bg-surface);border-top:1px solid var(--m-border);display:flex;flex-direction:column;gap:var(--m-space-md);padding:var(--m-space-lg)}.am-q-full-text{color:var(--m-text-primary);font-size:14px;line-height:1.7;margin:0}.am-question-options{display:flex;flex-direction:column;gap:5px;margin-top:4px}.am-option-item{align-items:center;background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-md);color:var(--m-text-secondary);display:flex;font-size:13px;gap:var(--m-space-sm);padding:8px var(--m-space-md);transition:background var(--m-transition)}.am-option-item--correct{background:var(--m-green-dim);border-color:var(--m-green-border);color:var(--m-green);font-weight:600}.am-option-label{color:var(--m-text-faint);flex-shrink:0;font-weight:700;width:20px}.am-correct-badge{background:var(--m-green-dim);border-radius:var(--m-radius-full);color:var(--m-green);font-size:10px;font-weight:700;margin-left:auto;padding:2px 8px}.am-answer-box{background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-md);color:var(--m-text-secondary);font-size:13px;line-height:1.6;padding:var(--m-space-md);white-space:pre-line}.am-answer-box strong{color:var(--m-text-primary);display:block;margin-bottom:4px}.am-explanation{background:var(--m-amber-dim);border-left:3px solid var(--m-amber);border-radius:0 var(--m-radius-md) var(--m-radius-md) 0;color:var(--m-text-secondary);font-size:13px;line-height:1.6;padding:var(--m-space-md)}.am-explanation strong{color:var(--m-amber);display:block;margin-bottom:4px}.am-q-row--edit .am-q-row-body{background:var(--m-bg-card)}.am-edit-question-meta-header{align-items:center;border-bottom:1px dashed var(--m-border-mid);display:flex;justify-content:space-between;padding-bottom:var(--m-space-md)}.am-question-number{font-weight:700}.am-edit-select,.am-question-number{color:var(--m-text-primary);font-size:13px}.am-edit-select{background:var(--m-bg-input);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);box-sizing:border-box;font-family:var(--m-font);outline:none;padding:9px 12px;transition:border-color var(--m-transition),box-shadow var(--m-transition);width:100%}.am-edit-select:focus{border-color:var(--m-border-focus);box-shadow:var(--m-shadow-focus)}.am-edit-input--points,.am-edit-input--sm{max-width:120px}.am-edit-field-row{grid-gap:var(--m-space-md);display:grid;gap:var(--m-space-md);grid-template-columns:1fr 1fr}.am-edit-options-section{display:flex;flex-direction:column;gap:7px}.am-edit-section-header{align-items:center;display:flex;gap:var(--m-space-sm);justify-content:space-between}.am-edit-section-header label{color:var(--m-text-secondary);font-size:12px;font-weight:600}.am-edit-option-row{align-items:center;display:flex;gap:var(--m-space-sm)}.am-option-letter{color:var(--m-text-faint);flex-shrink:0;font-size:13px;font-weight:700;text-align:center;width:20px}.am-edit-input-option{background:var(--m-bg-input);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);color:var(--m-text-primary);flex:1 1;font-family:var(--m-font);font-size:13px;outline:none;padding:7px 10px;transition:border-color var(--m-transition),box-shadow var(--m-transition)}.am-edit-input-option:focus{border-color:var(--m-border-focus);box-shadow:var(--m-shadow-focus)}.am-edit-add-question-bar{align-items:center;border-top:1px dashed var(--m-border-mid);display:flex;justify-content:space-between;margin-top:var(--m-space-sm);padding:var(--m-space-md) 0 var(--m-space-sm)}.am-btn--danger{background:var(--m-red-dim);border-color:var(--m-red-border);color:var(--m-red)}.am-btn--danger:hover:not(:disabled){background:var(--m-red);color:#fff}.am-btn--add{background:var(--m-green-dim);border-color:var(--m-green-border);color:var(--m-green);font-size:12px;padding:5px var(--m-space-md)}.am-btn--add:hover:not(:disabled){background:var(--m-green);color:#fff}.am-rubric-generator-wrap{background:var(--m-accent-dim);background:var(--type-dim,var(--m-accent-dim));border:1px dashed var(--m-border-mid);border-radius:var(--m-radius-lg);padding:var(--m-space-md) var(--m-space-lg)}.am-attempt-instructions{background:var(--m-bg-card);border:1px solid var(--m-border);border-left:3px solid var(--type,var(--m-accent));border-radius:var(--m-radius-md);color:var(--m-text-secondary);font-size:13px;line-height:1.7;padding:var(--m-space-md) var(--m-space-lg)}.am-q-row--grading .am-q-row-body{background:#f5f3ff;background:var(--m-role-instructor-dim,#f5f3ff)}.am-grading-student-answer{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-md);padding:var(--m-space-md) var(--m-space-lg)}.am-ai-grade-info{background:#f5f3ff;background:var(--m-role-instructor-dim,#f5f3ff);border:1px solid #ddd6fe;border:1px solid var(--m-role-instructor-border,#ddd6fe);border-radius:var(--m-radius-md);padding:var(--m-space-md) var(--m-space-lg)}.am-ai-grade-row{display:flex;flex-direction:column;gap:6px;margin-top:var(--m-space-sm)}.am-ai-points{color:#7c3aed;color:var(--m-role-instructor,#7c3aed);font-size:20px;font-weight:800;letter-spacing:-.02em}.am-ai-feedback{color:var(--m-text-secondary);font-size:13px;line-height:1.6;margin:0}.am-grade-override{background:var(--m-accent-dim);background:var(--type-dim,var(--m-accent-dim));border:1.5px solid var(--m-border-mid);border-radius:var(--m-radius-lg);padding:var(--m-space-md) var(--m-space-lg)}.am-grade-override-grid{display:flex;flex-direction:column;gap:var(--m-space-md);margin-top:var(--m-space-sm)}.am-grade-override-row{display:flex;flex-direction:column;gap:5px}.am-rubric-student{background:var(--m-accent-dim);border-left:3px solid #3b82f6;border-left:3px solid var(--m-accent,#3b82f6);border-radius:0 var(--m-radius-md) var(--m-radius-md) 0;color:var(--m-text-secondary);font-size:13px;line-height:1.6;padding:var(--m-space-sm) var(--m-space-md)}.am-rubric-student strong{color:#3b82f6;color:var(--m-accent,#3b82f6);display:block;margin-bottom:4px}.am-rubric-full{background:#f5f3ff;background:var(--m-role-instructor-dim,#f5f3ff);border:1px solid #ddd6fe;border:1px solid var(--m-role-instructor-border,#ddd6fe);border-radius:var(--m-radius-md);padding:var(--m-space-md) var(--m-space-lg)}.am-iot-requirements{background:#f0fdfa;background:var(--m-teal-dim,#f0fdfa);border:1px solid #99f6e4;border:1px solid var(--m-teal-border,#99f6e4);border-radius:var(--m-radius-md);color:var(--m-text-secondary);display:flex;flex-direction:column;font-size:13px;gap:5px;padding:var(--m-space-md)}.am-iot-req-item{align-items:baseline;display:flex;gap:6px;line-height:1.6}.am-iot-req-pts{color:#0d9488;color:var(--m-teal,#0d9488);font-size:11px;font-weight:700;margin-left:auto}.am-submission-history-card{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-lg);display:flex;flex-direction:column;gap:var(--m-space-sm);padding:var(--m-space-md) var(--m-space-lg)}.am-sub-history-header{align-items:center;display:flex;gap:var(--m-space-md);justify-content:space-between}.am-sub-number{color:var(--m-text-primary);font-size:13px;font-weight:700}.am-sub-history-meta{color:var(--m-text-secondary);display:flex;flex-direction:column;font-size:13px;gap:3px;line-height:1.5}.am-sub-history-meta p{margin:0}.am-questions-breakdown{background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-md);color:var(--m-text-secondary);font-size:12px;padding:var(--m-space-sm) var(--m-space-md)}.am-breakdown-grid{display:flex;flex-direction:column;gap:5px;margin-top:var(--m-space-sm)}.am-breakdown-item{background:var(--m-bg-surface);border:1px solid var(--m-border);border-radius:var(--m-radius-sm);display:flex;flex-direction:column;gap:2px;padding:7px var(--m-space-md)}.am-breakdown-q{color:var(--m-text-secondary);font-size:12px;font-weight:600}.am-breakdown-feedback{color:var(--m-text-faint);font-size:12px;font-style:italic;margin:2px 0 0}.am-feedback-box{background:var(--m-accent-dim);border-left:3px solid var(--type,var(--m-accent));border-radius:0 var(--m-radius-md) var(--m-radius-md) 0;color:var(--m-text-secondary);font-size:13px;line-height:1.6;padding:var(--m-space-sm) var(--m-space-md)}.am-feedback-box strong{color:var(--m-accent);color:var(--type,var(--m-accent));display:block;margin-bottom:4px}.am-q-simple-row{align-items:baseline;border:1px solid var(--m-border);border-radius:var(--m-radius-md);display:flex;flex-wrap:wrap;gap:var(--m-space-sm);padding:9px var(--m-space-md)}.am-q-simple-row,.am-resource-file-item{background:var(--m-bg-elevated);color:var(--m-text-secondary);font-size:13px}.am-resource-file-item{border:1px solid var(--m-border);border-radius:var(--m-radius-sm);padding:6px var(--m-space-md)}@media (max-width:600px){.am-hdr-chips{display:none}.am-edit-field-row{grid-template-columns:1fr}.am-q-row-header{grid-template-columns:auto 1fr auto}.am-q-row-meta{display:none}.am-score-card{align-items:flex-start;flex-direction:column}.am-attempt-info{flex-wrap:wrap;gap:var(--m-space-sm)}}.am-rubric-panel{display:flex;flex-direction:column;gap:var(--m-space-sm)}.am-rubric-panel-header{align-items:center;border-top:1px dashed var(--m-border-mid);display:flex;flex-wrap:wrap;gap:var(--m-space-sm);justify-content:space-between;padding:var(--m-space-sm) 0}.am-btn--rubric-view{background:#f5f3ff;background:var(--m-role-instructor-dim,#f5f3ff);border-color:#ddd6fe;border-color:var(--m-role-instructor-border,#ddd6fe);color:#7c3aed;color:var(--m-role-instructor,#7c3aed)}.am-btn--rubric-view:hover:not(:disabled){background:#7c3aed;background:var(--m-role-instructor,#7c3aed);color:#fff}.am-btn--rubric-view:disabled{cursor:not-allowed;opacity:.45}.am-rubric-empty{color:#9ca3af;color:var(--m-text-faint,#9ca3af);font-size:12px;font-style:italic;margin:0;padding:2px 0}.am-btn--rubric-gen{background:var(--m-accent-dim);background:var(--type-dim,var(--m-accent-dim));border-color:var(--type,var(--m-accent-border,var(--m-border-mid)));color:var(--m-accent);color:var(--type,var(--m-accent))}.am-btn--rubric-gen:hover:not(:disabled){background:var(--m-accent);background:var(--type,var(--m-accent));border-color:var(--type,var(--m-accent));color:#fff}.am-btn--rubric-gen:disabled{cursor:not-allowed;opacity:.45}.am-code-answer{background:#1e1e2e;border:1px solid #a6e3a126;border-radius:8px;box-shadow:inset 0 2px 8px #0000004d;color:#a6e3a1;font-family:Fira Code,Cascadia Code,Courier New,monospace;font-size:12px;line-height:1.6;margin:6px 0 0;overflow-x:auto;padding:12px 14px;white-space:pre}.am-code-answer-wrap{margin-top:8px}.am-code-answer-label{color:var(--m-text-secondary);display:block;font-size:13px;font-weight:600;margin-bottom:4px}.am-collapsible-body{border-top:1px solid var(--m-border);display:flex;flex-direction:column;gap:12px;padding:16px}.am-grading-pending-state{align-items:center;background:#f8fafc;background:var(--m-bg-elevated,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--m-border,#e2e8f0);border-radius:12px;border-radius:var(--m-radius-lg,12px);display:flex;flex-direction:column;gap:16px;justify-content:center;margin:20px 0;padding:60px 20px;text-align:center}.am-grading-pending-spinner{animation:am-grading-spin .85s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#7c3aed;border:4px solid var(--m-border,#e2e8f0);border-top-color:var(--m-purple,#7c3aed);height:48px;width:48px}@keyframes am-grading-spin{to{transform:rotate(1turn)}}.am-grading-pending-title{color:#1e293b;color:var(--m-text-primary,#1e293b);font-size:15px;font-weight:700}.am-grading-pending-subtitle{color:#64748b;color:var(--m-text-muted,#64748b);font-size:13px;margin:0}.gf{background:#faf5ff;border:1px solid var(--m-purple-border);border-radius:var(--m-radius-lg);border-top:2px solid var(--m-purple);display:flex;flex-direction:column;gap:var(--m-space-md);margin-top:var(--m-space-md);padding:var(--m-space-md)}.gf-title{color:var(--m-purple);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.gf-row{align-items:flex-start;display:flex;gap:var(--m-space-md)}.gf-field{display:flex;flex:1 1;flex-direction:column;gap:5px}.gf-label{color:var(--m-text-secondary);font-size:12px;font-weight:600}.gf-opt{color:var(--m-text-faint);font-size:11px;font-weight:400}.gf-pts-wrap{align-items:center;display:flex;gap:var(--m-space-sm)}.gf-pts-input{background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);color:var(--m-text-primary);font-family:var(--m-font);font-size:18px;font-weight:700;outline:none;padding:8px 12px;text-align:center;transition:border-color var(--m-transition),box-shadow var(--m-transition);width:88px}.gf-pts-input:focus{border-color:var(--m-border-focus);box-shadow:var(--m-shadow-focus)}.gf-pts-max{color:var(--m-text-muted);font-size:14px}.gf-ai-hint{align-items:center;color:var(--m-text-faint);display:flex;font-size:11px;gap:var(--m-space-sm);margin-top:4px}.gf-ai-use{background:var(--m-purple-dim);border:1px solid var(--m-purple-border);border-radius:var(--m-radius-full);color:var(--m-purple);cursor:pointer;font-size:11px;font-weight:600;padding:2px 9px;transition:all var(--m-transition)}.gf-ai-use:hover{background:var(--m-purple);color:#fff}.gf-textarea{background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);box-sizing:border-box;color:var(--m-text-primary);font-family:var(--m-font);font-size:13px;line-height:1.6;outline:none;padding:9px 12px;resize:vertical;transition:border-color var(--m-transition),box-shadow var(--m-transition);width:100%}.gf-textarea:focus{border-color:var(--m-border-focus);box-shadow:var(--m-shadow-focus)}.gf-textarea--override{border-color:var(--m-amber-border)}.gf-textarea--override:focus{border-color:var(--m-amber);box-shadow:0 0 0 3px #d977061f}.gf-ai-copy{align-self:flex-start;background:var(--m-purple-dim);border:1px solid var(--m-purple-border);border-radius:var(--m-radius-full);color:var(--m-purple);cursor:pointer;font-size:11px;font-weight:600;margin-top:5px;padding:4px 11px;transition:all var(--m-transition)}.gf-ai-copy:hover{background:var(--m-purple);color:#fff}.gf-ai-box{background:var(--m-bg-surface);border:1px solid var(--m-purple-border);border-radius:var(--m-radius-md);padding:var(--m-space-md)}.gf-ai-box-lbl{color:var(--m-purple);display:block;font-size:10px;font-weight:700;letter-spacing:.05em;margin-bottom:5px;text-transform:uppercase}.gf-ai-box p{color:var(--m-text-secondary);font-size:13px;line-height:1.6;margin:0}.gf-override{background:#fffbeb;border:1px solid var(--m-amber-border);border-radius:var(--m-radius-md);display:flex;flex-direction:column;gap:5px;padding:var(--m-space-md)}.qc-preview{align-items:center;background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-md);display:flex;gap:var(--m-space-md);padding:8px 12px;transition:border-color var(--m-transition)}.qc-preview:hover{border-color:var(--m-border-mid)}.qc-preview-num{color:var(--m-text-secondary);font-size:12px;font-weight:700;min-width:30px}.qc-preview-type{color:var(--m-text-muted);flex:1 1;font-size:12px}.qc-preview-pts{color:var(--m-accent);font-size:12px;font-weight:600}.qc{background:var(--m-bg-surface);border:1px solid var(--m-border);border-radius:var(--m-radius-lg);margin-bottom:var(--m-space-md);overflow:hidden;transition:border-color var(--m-transition),box-shadow var(--m-transition)}.qc:hover{border-color:var(--m-border-mid)}.qc--correct{border-left:3px solid var(--m-green)}.qc--incorrect{border-left:3px solid var(--m-red)}.qc--pending{border-left:3px solid var(--m-amber)}.qc-hdr{align-items:center;background:var(--m-bg-elevated);cursor:pointer;display:flex;gap:var(--m-space-md);justify-content:space-between;padding:var(--m-space-md) var(--m-space-lg);transition:background var(--m-transition)}.qc-hdr:hover{background:var(--m-bg-card)}.qc-hdr-left{gap:var(--m-space-sm)}.qc-hdr-left,.qc-hdr-right{align-items:center;display:flex}.qc-hdr-right{gap:var(--m-space-md)}.qc-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.qc-dot--correct{background:var(--m-green)}.qc-dot--incorrect{background:var(--m-red)}.qc-dot--pending{background:var(--m-amber)}.qc-num{color:var(--m-text-primary);font-size:13px;font-weight:700}.qc-type{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-full);font-size:11px;padding:2px 8px}.qc-pts-info,.qc-type{color:var(--m-text-muted)}.qc-pts-info{font-size:12px;font-weight:600;white-space:nowrap}.qc-chev{color:var(--m-text-faint);font-size:10px}.qc-body{border-top:1px solid var(--m-border);display:flex;flex-direction:column;gap:var(--m-space-md);padding:var(--m-space-lg)}.qc-qtext{color:var(--m-text-primary);font-size:14px;line-height:1.6;margin:0}.qc-options{display:flex;flex-direction:column;gap:6px}.qc-option{align-items:center;background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-md);cursor:default;display:flex;font-family:var(--m-font);gap:var(--m-space-sm);padding:10px 14px;transition:all var(--m-transition)}.qc-option--interactive{cursor:pointer}.qc-option--interactive:hover{background:var(--m-accent-dim);border-color:var(--m-accent-border)}.qc-option--selected{background:var(--m-accent-dim);border-color:var(--m-accent)}.qc-option--correct{background:var(--m-green-dim);border-color:var(--m-green-border)}.qc-option--wrong{background:var(--m-red-dim);border-color:var(--m-red-border)}.qc-option--student-correct{background:var(--m-green-dim);border-color:var(--m-green-border)}.qc-radio{display:none}.qc-opt-letter{color:var(--m-text-muted);font-size:12px;font-weight:700;min-width:20px}.qc-opt-text{color:var(--m-text-primary);flex:1 1;font-size:13px}.qc-opt-tag{border-radius:var(--m-radius-full);font-size:10px;font-weight:700;padding:2px 7px;white-space:nowrap}.qc-opt-tag--you{background:var(--m-purple-dim);color:var(--m-purple)}.qc-opt-tag--ok{background:var(--m-green-dim);color:var(--m-green)}.qc-text-wrap{display:flex;flex-direction:column;gap:5px}.qc-textarea{background:var(--m-bg-input);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);box-sizing:border-box;color:var(--m-text-primary);font-family:var(--m-font);font-size:13px;line-height:1.6;outline:none;padding:10px 12px;resize:vertical;transition:border-color var(--m-transition),box-shadow var(--m-transition);width:100%}.qc-textarea:focus{border-color:var(--m-border-focus);box-shadow:var(--m-shadow-focus)}.qc-textarea--code{font-family:var(--m-font-mono);font-size:12px}.qc-char{color:var(--m-text-faint);font-size:11px;text-align:right}.qc-essay-upload{display:flex;flex-direction:column;gap:5px}.qc-upload-label{align-items:center;background:var(--m-bg-card);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-md);color:var(--m-accent);cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:6px 12px;transition:all var(--m-transition)}.qc-upload-label:hover{background:var(--m-accent-dim);border-color:var(--m-accent-border)}.qc-upload-input{display:none}.qc-essay-file{align-items:center;color:var(--m-text-secondary);display:flex;font-size:12px;gap:var(--m-space-sm)}.qc-file-rm{background:none;border:none;color:var(--m-text-faint);cursor:pointer;font-size:12px}.qc-file-rm:hover{color:var(--m-red)}.qc-compare{display:flex;flex-direction:column;gap:var(--m-space-sm)}.qc-box{border:1px solid;border-radius:var(--m-radius-md);padding:var(--m-space-md)}.qc-box-lbl{display:block;font-size:10px;font-weight:700;letter-spacing:.06em;margin-bottom:5px;text-transform:uppercase}.qc-box p{color:var(--m-text-primary);font-size:13px;line-height:1.6;margin:0}.qc-box--student{background:var(--m-purple-dim);border-color:var(--m-purple-border)}.qc-box--student .qc-box-lbl{color:var(--m-purple)}.qc-box--correct{background:var(--m-green-dim);border-color:var(--m-green-border)}.qc-box--correct .qc-box-lbl{color:var(--m-green)}.qc-box--pending{background:var(--m-amber-dim);border-color:var(--m-amber-border)}.qc-box--pending .qc-box-lbl{color:var(--m-amber)}.qc-code{background:#f6f8fa;border-radius:4px;color:#24292e;font-family:var(--m-font-mono);font-size:12px;line-height:1.6;margin:4px 0 0;overflow-x:auto;padding:var(--m-space-sm);white-space:pre-wrap;word-break:break-word}.qc-attach-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.qc-attach-lbl{color:var(--m-text-faint);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.qc-attach-btn{align-items:center;background:var(--m-bg-card);border:1px solid var(--m-border-mid);border-radius:var(--m-radius-sm);color:var(--m-accent);cursor:pointer;display:inline-flex;font-size:12px;gap:5px;padding:4px 10px;transition:all var(--m-transition)}.qc-attach-btn:hover{background:var(--m-accent-dim);border-color:var(--m-accent-border)}.qc-explain{background:#eff6ff;border:1px solid var(--m-accent-border);border-radius:var(--m-radius-md);padding:var(--m-space-md)}.qc-explain-lbl{color:var(--m-accent);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;margin-bottom:5px;text-transform:uppercase}.qc-explain p{color:var(--m-text-secondary);font-size:13px;line-height:1.6;margin:0}.qc-iot{background:var(--m-bg-elevated);border:1px solid var(--m-border);border-radius:var(--m-radius-lg);display:flex;flex-direction:column;gap:var(--m-space-sm);padding:var(--m-space-md)}.qc-iot-title{color:var(--m-accent);font-size:13px;font-weight:700}.qc-iot-meta{color:var(--m-text-secondary);display:flex;flex-direction:column;font-size:12px;gap:4px}.qc-iot-meta code{background:var(--m-bg-card);border-radius:3px;font-family:var(--m-font-mono);font-size:11px;padding:1px 5px}.qc-iot-empty{color:var(--m-text-faint);font-size:13px}.qc-btn{align-items:center;border:1px solid #0000;border-radius:var(--m-radius-md);cursor:pointer;display:inline-flex;font-family:var(--m-font);font-size:13px;font-weight:600;gap:6px;padding:7px 14px;transition:all var(--m-transition);width:-webkit-fit-content;width:fit-content}.qc-btn--blue{background:var(--m-accent-dim);border-color:var(--m-accent-border);color:var(--m-accent)}.qc-btn--blue:hover{background:var(--m-accent);color:#fff}.qc-btn--purple{background:var(--m-purple-dim);border-color:var(--m-purple-border);color:var(--m-purple)}.qc-btn--purple:hover{background:var(--m-purple);color:#fff}.shc-card{border:1px solid var(--m-border);border-radius:var(--m-radius-lg);overflow:hidden;transition:border-color var(--m-transition)}.shc-card+.shc-card{margin-top:6px}.shc-card:hover{border-color:var(--m-border-mid)}.shc-hdr{align-items:center;background:var(--m-bg-elevated);border:none;cursor:pointer;display:flex;font-family:var(--m-font);gap:var(--m-space-md);justify-content:space-between;padding:var(--m-space-md) var(--m-space-lg);text-align:left;transition:background var(--m-transition);width:100%}.shc-hdr:hover{background:var(--m-bg-card)}.shc-hdr-left{flex:1 1}.shc-hdr-left,.shc-hdr-right{align-items:center;display:flex;gap:var(--m-space-md)}.shc-hdr-right{flex-shrink:0}.shc-num{color:var(--m-text-primary);font-size:13px;font-weight:700}.shc-date{color:var(--m-text-muted);font-size:12px}.shc-grade{font-size:14px;font-weight:700}.shc-pct{font-size:11px;font-weight:500;opacity:.8}.shc-status{align-items:center;border-radius:var(--m-radius-full);display:inline-flex;font-size:11px;font-weight:600;gap:4px;padding:2px 9px}.shc-status--green{background:var(--m-green-dim);color:var(--m-green)}.shc-status--amber{background:var(--m-amber-dim);color:var(--m-amber)}.shc-status--blue{background:var(--m-role-admin-dim);color:var(--m-role-admin)}.shc-status--red{background:var(--m-red-dim);color:var(--m-red)}.shc-chev{color:var(--m-text-faint);font-size:10px}.shc-body{border-top:1px solid var(--m-border);flex-direction:column;padding:var(--m-space-lg)}.shc-body,.shc-meta{display:flex;gap:var(--m-space-md)}.shc-meta{font-size:13px}.shc-meta span:first-child{color:var(--m-text-muted);min-width:90px}.shc-meta span:last-child{color:var(--m-text-primary);font-weight:500}.shc-desc{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-md);color:var(--m-text-secondary);font-size:13px;line-height:1.6;margin:0;padding:var(--m-space-sm) var(--m-space-md)}.shc-link{align-items:center;background:var(--m-accent-dim);border:1px solid var(--m-accent-border);border-radius:var(--m-radius-md);color:var(--m-accent);display:inline-flex;font-size:12px;gap:6px;padding:5px 12px;text-decoration:none;transition:all var(--m-transition);width:-webkit-fit-content;width:fit-content}.shc-link:hover{background:#3b82f62e}.shc-answers{display:flex;flex-direction:column;gap:5px}.shc-answers-lbl{color:var(--m-text-faint);font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:4px;text-transform:uppercase}.shc-answer{border:1px solid var(--m-border);border-radius:var(--m-radius-md);overflow:hidden}.shc-answer--correct{border-left:3px solid var(--m-green)}.shc-answer--incorrect{border-left:3px solid var(--m-red)}.shc-answer--pending{border-left:3px solid var(--m-amber)}.shc-answer-hdr{align-items:center;background:var(--m-bg-elevated);border:none;cursor:pointer;display:flex;font-family:var(--m-font);gap:var(--m-space-sm);padding:7px 12px;text-align:left;transition:background var(--m-transition);width:100%}.shc-answer-hdr:hover{background:var(--m-bg-card)}.shc-answer-dot{border-radius:50%;flex-shrink:0;height:7px;width:7px}.shc-answer-dot--correct{background:var(--m-green)}.shc-answer-dot--incorrect{background:var(--m-red)}.shc-answer-dot--pending{background:var(--m-amber)}.shc-answer-q{color:var(--m-text-secondary);font-size:12px;font-weight:700;min-width:28px}.shc-answer-type{color:var(--m-text-faint);flex:1 1;font-size:11px}.shc-answer-pts{color:var(--m-text-primary);font-size:12px;font-weight:600;white-space:nowrap}.shc-answer-body{border-top:1px solid var(--m-border);display:flex;flex-direction:column;gap:var(--m-space-sm);padding:var(--m-space-md)}.shc-qtext{color:var(--m-text-secondary);font-size:13px;line-height:1.5;margin:0}.shc-given{background:var(--m-purple-dim);border:1px solid var(--m-purple-border);border-radius:var(--m-radius-sm);padding:var(--m-space-sm) var(--m-space-md)}.shc-given-lbl{color:var(--m-purple);display:block;font-size:10px;font-weight:700;letter-spacing:.05em;margin-bottom:3px;text-transform:uppercase}.shc-given p{color:var(--m-text-primary);font-size:13px;margin:0}.shc-feedback{background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-sm);color:var(--m-text-secondary);font-size:13px;line-height:1.5;padding:var(--m-space-sm) var(--m-space-md)}.shc-feedback-lbl{color:var(--m-text-muted);display:block;font-size:10px;font-weight:700;letter-spacing:.05em;margin-bottom:3px;text-transform:uppercase}.shc-feedback p{margin:0}.shc-attachments{display:flex;flex-wrap:wrap;gap:5px}.shc-attach-btn{align-items:center;background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:var(--m-radius-sm);color:var(--m-accent);cursor:pointer;display:inline-flex;font-size:12px;gap:5px;padding:4px 10px;transition:all var(--m-transition)}.shc-attach-btn:hover{background:var(--m-accent-dim);border-color:var(--m-accent-border)}.shc-overall{background:var(--m-bg-card);border:1px solid var(--m-border);border-left:3px solid var(--m-accent);border-radius:var(--m-radius-md);padding:var(--m-space-md)}.shc-overall-lbl{color:var(--m-accent);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;margin-bottom:5px;text-transform:uppercase}.shc-overall p{color:var(--m-text-secondary);font-size:13px;line-height:1.6;margin:0}.adm-overlay{align-items:center;animation:adm-fade-in .2s ease both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a80;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1200}@keyframes adm-fade-in{0%{opacity:0}to{opacity:1}}.adm-shell{animation:adm-slide-in .25s cubic-bezier(.34,1.56,.64,1) both;background:#fff;background:var(--m-bg-surface,#fff);border-radius:16px;box-shadow:0 24px 64px #0000002e,0 4px 16px #00000014;display:flex;flex-direction:column;max-height:calc(100vh - 80px);max-width:520px;overflow:hidden;width:100%}@keyframes adm-slide-in{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.adm-accent-bar{flex-shrink:0;height:4px;width:100%}.adm-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--m-border,#e5e7eb);flex-shrink:0;justify-content:space-between;padding:18px 20px 16px}.adm-header,.adm-header-left{align-items:center;display:flex;gap:12px}.adm-header-icon{align-items:center;background:#f1f4f8;background:var(--m-bg-card,#f1f4f8);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:10px;display:flex;flex-shrink:0;font-size:18px;height:38px;justify-content:center;width:38px}.adm-title{color:#111827;color:var(--m-text-primary,#111827);font-size:15px;font-weight:700;margin:0}.adm-subtitle{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:11px;margin-top:1px}.adm-priority-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;font-weight:700;gap:4px;letter-spacing:.04em;padding:4px 10px;white-space:nowrap}.adm-close-btn{align-items:center;background:#0000;border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:8px;color:#6b7280;color:var(--m-text-muted,#6b7280);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:30px;justify-content:center;transition:all .15s;width:30px}.adm-close-btn:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.adm-body{display:flex;flex:1 1;flex-direction:column;gap:16px;overflow-y:auto;padding:20px}.adm-body::-webkit-scrollbar{width:4px}.adm-body::-webkit-scrollbar-track{background:#0000}.adm-body::-webkit-scrollbar-thumb{background:#e5e7eb;background:var(--m-border,#e5e7eb);border-radius:4px}.adm-field{display:flex;flex-direction:column;gap:6px}.adm-label{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.adm-value-title{color:#111827;color:var(--m-text-primary,#111827);font-size:17px;font-weight:700;line-height:1.4}.adm-value-body{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:10px;color:#374151;color:var(--m-text-secondary,#374151);font-size:14px;line-height:1.7;min-height:80px;padding:14px 16px;white-space:pre-wrap}.adm-meta-grid{border-top:1px solid #e5e7eb;border-top:1px solid var(--m-border,#e5e7eb);display:flex;flex-direction:column;gap:10px;padding-top:14px}.adm-meta-item{align-items:center;background:#f8f9fc;background:var(--m-bg-card,#f8f9fc);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:8px;display:flex;gap:10px;padding:8px 12px}.adm-meta-icon{flex-shrink:0;font-size:16px}.adm-meta-content{display:flex;flex-direction:column;gap:1px}.adm-meta-label{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.adm-meta-value{color:#111827;color:var(--m-text-primary,#111827);font-size:13px;font-weight:600}.adm-footer{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border-top:1px solid #e5e7eb;border-top:1px solid var(--m-border,#e5e7eb);display:flex;flex-shrink:0;justify-content:flex-end;padding:14px 20px}.adm-close-full-btn{background:#fff;background:var(--m-bg-surface,#fff);border:1px solid #d1d5db;border:1px solid var(--m-border-mid,#d1d5db);border-radius:8px;color:#374151;color:var(--m-text-secondary,#374151);cursor:pointer;font-size:13px;font-weight:600;padding:8px 20px;transition:all .15s}.adm-close-full-btn:hover{background:#f1f4f8;background:var(--m-bg-card,#f1f4f8);border-color:#93c5fd;border-color:var(--m-border-focus,#93c5fd)}.cm-root{background:#f4f6f9;background:var(--m-bg-page,#f4f6f9);border-radius:12px;overflow:hidden;width:100%}.cm-single{flex-direction:column}.cm-single,.cm-split{display:flex;height:100%}.cm-split{min-height:500px}.cm-loading{align-items:center;gap:12px;justify-content:center;padding:40px}.cm-spinner{animation:cm-spin .8s linear infinite;border:3px solid #e5e7eb;border-top-color:#3b82f6;border:3px solid var(--m-border,#e5e7eb);border-radius:50%;border-top-color:var(--m-accent,#3b82f6);height:36px;width:36px}@keyframes cm-spin{to{transform:rotate(1turn)}}.cm-sidebar{background:#fff;background:var(--m-bg-surface,#fff);border-right:1px solid #e5e7eb;border-right:1px solid var(--m-border,#e5e7eb);display:flex;flex-direction:column;flex-shrink:0;min-width:200px;overflow:hidden;width:240px}.cm-sidebar-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--m-border,#e5e7eb);flex-shrink:0;padding:16px 16px 12px}.cm-sidebar-header h4{color:#374151;color:var(--m-text-secondary,#374151);font-size:13px;font-weight:700;margin:0}.cm-sidebar-list{flex:1 1;overflow-y:auto;padding:8px 0}.cm-sidebar-empty{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:13px;padding:20px 16px;text-align:center}.cm-admin-sidebar-body{display:flex;flex:1 1;flex-direction:column;gap:16px;overflow-y:auto;padding:16px}.cm-student-row{align-items:center;cursor:pointer;display:flex;gap:10px;padding:10px 14px;position:relative;transition:background .15s}.cm-student-row:hover{background:#f1f4f8;background:var(--m-bg-card,#f1f4f8)}.cm-student-active{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border-left:3px solid #3b82f6;border-left:3px solid var(--m-accent,#3b82f6);padding-left:11px}.cm-student-avatar{background:#f1f4f8;background:var(--m-bg-card,#f1f4f8);border-radius:50%;flex-shrink:0;height:36px;object-fit:cover;width:36px}.cm-student-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.cm-student-name{color:#111827;color:var(--m-text-primary,#111827);font-size:13px;font-weight:600}.cm-student-name,.cm-student-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-student-sub{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:11px}.cm-unread-dot{background:#3b82f6;background:var(--m-accent,#3b82f6);border-radius:50%;flex-shrink:0;height:8px;width:8px}.cm-right{background:#fff;background:var(--m-bg-surface,#fff);display:flex;flex:1 1;flex-direction:column;overflow:hidden}.cm-right-tabs{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--m-border,#e5e7eb);display:flex;flex-shrink:0}.cm-right-tab{background:none;border:none;border-bottom:3px solid #0000;color:#6b7280;color:var(--m-text-muted,#6b7280);cursor:pointer;flex:1 1;font-size:13px;font-weight:600;padding:12px 16px;transition:color .15s,border-bottom .15s}.cm-right-tab:hover{color:#111827;color:var(--m-text-primary,#111827)}.cm-right-tab-active{border-bottom-color:#3b82f6;border-bottom-color:var(--m-accent,#3b82f6);color:#3b82f6;color:var(--m-accent,#3b82f6)}.cm-no-selection{align-items:center;color:#6b7280;color:var(--m-text-muted,#6b7280);display:flex;flex:1 1;flex-direction:column;font-size:14px;gap:12px;justify-content:center}.cm-no-selection-icon{font-size:48px;opacity:.4}.cm-chat-pane{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.cm-chat-header{align-items:center;background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--m-border,#e5e7eb);display:flex;flex-shrink:0;gap:12px;padding:14px 18px}.cm-chat-avatar{background:#f1f4f8;background:var(--m-bg-card,#f1f4f8);border-radius:50%;height:40px;object-fit:cover;width:40px}.cm-chat-user-info{display:flex;flex-direction:column}.cm-chat-name{color:#111827;color:var(--m-text-primary,#111827);font-size:14px;font-weight:700}.cm-chat-sub{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:12px}.cm-messages-scroll{display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding:16px 18px}.cm-empty{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:14px;padding:32px 0;text-align:center}.cm-msg-wrapper{display:flex;flex-direction:column}.cm-sent{align-items:flex-end}.cm-received{align-items:flex-start}.cm-bubble{border-radius:14px;display:flex;flex-direction:column;gap:4px;max-width:72%;padding:10px 14px}.cm-bubble-mine{background:#3b82f6;background:var(--m-accent,#3b82f6);border-bottom-right-radius:4px;color:#fff}.cm-bubble-theirs{background:#f1f4f8;background:var(--m-bg-card,#f1f4f8);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-bottom-left-radius:4px;color:#111827;color:var(--m-text-primary,#111827)}.cm-bubble-header{align-items:baseline;display:flex;gap:8px;justify-content:space-between}.cm-bubble-sender{font-size:11px;font-weight:700;opacity:.8}.cm-bubble-mine .cm-bubble-sender{color:#ffffffd9}.cm-bubble-time{font-size:10px;opacity:.65}.cm-bubble-body{font-size:14px;line-height:1.5;word-break:break-word}.cm-bubble-status{display:flex;justify-content:flex-end}.cm-status-dot{font-size:11px;opacity:.7}.cm-send-form{background:#fff;background:var(--m-bg-surface,#fff);border-top:1px solid #e5e7eb;border-top:1px solid var(--m-border,#e5e7eb);display:flex;flex-shrink:0;gap:10px;padding:14px 18px}.cm-send-input{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:24px;color:#111827;color:var(--m-text-primary,#111827);flex:1 1;font-size:14px;outline:none;padding:10px 14px;transition:border-color .15s}.cm-send-input:focus{background:#fff;background:var(--m-bg-surface,#fff);border-color:#3b82f6;border-color:var(--m-accent,#3b82f6)}.cm-send-btn{background:#3b82f6;background:var(--m-accent,#3b82f6);border:none;border-radius:24px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:10px 20px;transition:background .15s;white-space:nowrap}.cm-send-btn:hover{background:#2563eb;background:var(--m-accent-hover,#2563eb)}.cm-ann-pane{flex:1 1;gap:28px;overflow-y:auto;padding:20px 20px 24px}.cm-ann-compose,.cm-ann-pane{display:flex;flex-direction:column}.cm-ann-compose{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:12px;gap:14px;padding:20px}.cm-ann-compose-title{color:#111827;color:var(--m-text-primary,#111827);font-size:14px;font-weight:700;margin:0}.cm-ann-field{display:flex;flex-direction:column;gap:6px}.cm-ann-label{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.cm-ann-input,.cm-ann-select{background:#fff;background:var(--m-bg-surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:8px;color:#111827;color:var(--m-text-primary,#111827);font-size:14px;outline:none;padding:9px 12px;transition:border-color .15s}.cm-ann-input:focus,.cm-ann-select:focus{border-color:#3b82f6;border-color:var(--m-accent,#3b82f6)}.cm-ann-textarea{background:#fff;background:var(--m-bg-surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:8px;color:#111827;color:var(--m-text-primary,#111827);font-family:inherit;font-size:14px;outline:none;padding:9px 12px;resize:vertical;transition:border-color .15s}.cm-ann-textarea:focus{border-color:#3b82f6;border-color:var(--m-accent,#3b82f6)}.cm-ann-char-count{align-self:flex-end;color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:11px}.cm-ann-send-btn{align-self:flex-start;background:#7c3aed;background:var(--m-role-instructor,#7c3aed);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:10px 22px;transition:opacity .15s}.cm-ann-send-btn:disabled{cursor:not-allowed;opacity:.65}.cm-ann-send-btn:hover:not(:disabled){opacity:.9}.cm-ann-send-btn-admin{background:linear-gradient(135deg,#f59e0b,#d97706)}.cm-ann-history{display:flex;flex-direction:column;gap:10px}.cm-ann-history-title{color:#111827;color:var(--m-text-primary,#111827);font-size:14px;font-weight:700;margin:0 0 4px}.cm-ann-empty{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:13px;padding:20px 0;text-align:center}.cm-ann-card{background:#fff;background:var(--m-bg-surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:12px;overflow:hidden;position:relative;transition:box-shadow .2s,transform .2s}.cm-ann-card:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-1px)}.cm-ann-card:before{background:#f59e0b;background:var(--cm-card-accent,#f59e0b);border-radius:12px 0 0 12px;bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.cm-ann-card-inner{display:flex;flex-direction:column;gap:8px;padding:14px 16px 14px 20px}.cm-ann-card-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.cm-ann-card-title{color:#111827;color:var(--m-text-primary,#111827);flex:1 1;font-size:14px;font-weight:700;line-height:1.4;margin:0;min-width:0}.cm-ann-priority-badge{border-radius:20px;flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 9px;white-space:nowrap}.cm-ann-card-body{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#374151;color:var(--m-text-secondary,#374151);display:-webkit-box;font-size:13px;line-height:1.6;margin:0;overflow:hidden}.cm-ann-card-footer{align-items:center;border-top:1px solid #e5e7eb;border-top:1px solid var(--m-border,#e5e7eb);display:flex;gap:8px;justify-content:space-between;padding-top:8px}.cm-ann-date,.cm-ann-recipients{align-items:center;color:#6b7280;color:var(--m-text-muted,#6b7280);display:flex;font-size:11px;gap:4px}.cm-stat-cards{display:flex;flex-direction:column;gap:8px}.cm-stat-card{align-items:center;background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:8px;display:flex;justify-content:space-between;padding:10px 14px}.cm-stat-card-total{background:#3b82f60d;border-color:#3b82f6;border-color:var(--m-accent,#3b82f6)}.cm-stat-label{color:#374151;color:var(--m-text-secondary,#374151);font-size:12px;font-weight:500}.cm-stat-value{color:#111827;color:var(--m-text-primary,#111827);font-size:18px;font-weight:700}.cm-broadcast-warning{align-items:flex-start;background:#f59e0b14;border:1px solid #f59e0b4d;border-radius:8px;color:#92400e;display:flex;font-size:13px;gap:8px;padding:10px 12px}.cm-broadcast-warning p{line-height:1.4;margin:0}.cm-ann-add-btn{align-items:center;background:var(--m-bg-surface);border:1px solid var(--m-border-mid);border-radius:8px;color:var(--m-text-secondary);cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:4px;padding:6px 12px;transition:all .15s}.cm-ann-add-btn:hover{background:var(--m-accent-dim);border-color:var(--m-accent-border);color:var(--m-accent)}.cm-compose-overlay{align-items:center;animation:cm-fade-in .2s ease both;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a80;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:1300}@keyframes cm-fade-in{0%{opacity:0}to{opacity:1}}.cm-compose-shell{animation:cm-slide-in .25s cubic-bezier(.34,1.56,.64,1) both;background:var(--m-bg-surface);border-radius:16px;box-shadow:0 24px 64px #0000002e;display:flex;flex-direction:column;max-width:480px;overflow:hidden;width:100%}@keyframes cm-slide-in{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.cm-compose-header{align-items:center;border-bottom:1px solid var(--m-border);display:flex;flex-shrink:0;justify-content:space-between;padding:16px 20px}.cm-compose-icon{align-items:center;background:var(--m-bg-card);border:1px solid var(--m-border);border-radius:10px;display:flex;font-size:16px;height:36px;justify-content:center;width:36px}.cm-compose-title{color:var(--m-text-primary);font-size:14px;font-weight:700}.cm-compose-sub{margin-top:1px}.cm-compose-close,.cm-compose-sub{color:var(--m-text-muted);font-size:11px}.cm-compose-close{align-items:center;background:#0000;border:1px solid var(--m-border-mid);border-radius:7px;cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .15s;width:28px}.cm-compose-close:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626}.cm-compose-body{display:flex;flex-direction:column;gap:14px;overflow-y:auto;padding:20px}.cm-compose-footer{background:var(--m-bg-elevated);border-top:1px solid var(--m-border);display:flex;flex-shrink:0;gap:8px;justify-content:flex-end;padding:14px 20px}.cm-compose-cancel{background:#0000;border:1px solid var(--m-border-mid);border-radius:8px;color:var(--m-text-muted);cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .15s}.cm-compose-cancel:hover{background:var(--m-bg-card);color:var(--m-text-secondary)}.am-page-body{margin:0 auto;max-width:1100px;padding:24px 32px}.am-stats-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:32px}.am-stat-card{align-items:center;background:#fff;background:var(--card-bg,#fff);border:1px solid #00000012;border-radius:14px;box-shadow:0 2px 12px #0000000f;display:flex;gap:16px;padding:20px 22px;transition:transform .2s ease,box-shadow .2s ease}.am-stat-card:hover{box-shadow:0 6px 20px #0000001a;transform:translateY(-2px)}.am-stat-icon-wrap{align-items:center;border-radius:12px;display:flex;flex-shrink:0;font-size:22px;height:52px;justify-content:center;width:52px}.am-stat-users .am-stat-icon-wrap{background:#3b82f61f}.am-stat-sent .am-stat-icon-wrap{background:#10b9811f}.am-stat-urgent .am-stat-icon-wrap{background:#ef44441f}.am-stat-recent .am-stat-icon-wrap{background:#f59e0b1f}.am-stat-info{display:flex;flex-direction:column;gap:2px}.am-stat-number{color:#111827;color:var(--text-primary,#111827);font-size:28px;font-weight:700;line-height:1}.am-stat-users .am-stat-number{color:#3b82f6}.am-stat-sent .am-stat-number{color:#10b981}.am-stat-urgent .am-stat-number{color:#ef4444}.am-stat-recent .am-stat-number{color:#f59e0b}.am-stat-label{color:#111827;color:var(--text-primary,#111827);font-size:13px;font-weight:600}.am-stat-sub{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:11px}.am-history-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.am-history-title{align-items:center;display:flex;gap:10px}.am-history-title h3{color:#111827;color:var(--text-primary,#111827);font-size:18px;font-weight:700;margin:0}.am-history-count{background:#6366f11a;border-radius:20px;color:#6366f1;font-size:12px;font-weight:600;padding:3px 10px}.am-compose-btn{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:10px;box-shadow:0 4px 12px #6366f14d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.am-compose-btn:hover{box-shadow:0 6px 18px #6366f166;transform:translateY(-1px)}.am-compose-plus{font-size:20px;font-weight:300;line-height:1}.am-history-list{display:flex;flex-direction:column;gap:12px}.am-announcement-card{background:#fff;background:var(--card-bg,#fff);border:1px solid #00000012;border-radius:12px;box-shadow:0 2px 8px #0000000d;cursor:pointer;display:flex;overflow:hidden;transition:all .2s ease}.am-announcement-card:hover{border-color:#6366f1;border-color:var(--priority-color,#6366f1);box-shadow:0 4px 16px #0000001a;transform:translateX(3px)}.am-card-priority-bar{flex-shrink:0;width:4px}.am-card-body{display:flex;flex:1 1;flex-direction:column;gap:8px;padding:16px 20px}.am-card-top{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.am-card-title{color:#111827;color:var(--text-primary,#111827);flex:1 1;font-size:15px;font-weight:600;margin:0}.am-card-priority-badge{border-radius:20px;flex-shrink:0;font-size:11px;font-weight:600;padding:3px 10px;white-space:nowrap}.am-card-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#6b7280;color:var(--text-secondary,#6b7280);display:-webkit-box;font-size:13px;line-height:1.5;margin:0;overflow:hidden}.am-card-footer{align-items:center;border-top:1px solid #0000000d;display:flex;gap:16px;padding-top:4px}.am-card-meta{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:11px}.am-empty-state{align-items:center;background:#fff;background:var(--card-bg,#fff);border:2px dashed #0000001a;border-radius:16px;display:flex;flex-direction:column;justify-content:center;padding:64px 32px;text-align:center}.am-empty-icon{font-size:48px;margin-bottom:16px}.am-empty-state h4{color:#111827;color:var(--text-primary,#111827);font-size:18px;margin:0 0 8px}.am-empty-state p{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:14px;margin:0 0 24px}.am-compose-modal{background:#fff;background:var(--card-bg,#fff);border-radius:16px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:95vw;overflow:hidden;width:560px}.am-modal-header{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-bottom:1px solid #00000014;display:flex;justify-content:space-between;padding:20px 24px}.am-modal-header h2{color:#fff;font-size:18px;font-weight:700;margin:0}.am-modal-header .close-button{align-items:center;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;transition:background .2s;width:32px}.am-modal-header .close-button:hover{background:#ffffff59}.am-modal-body{display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto;padding:24px}.am-modal-footer{border-top:1px solid #00000014;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.am-form-field{display:flex;flex-direction:column;gap:8px}.am-form-field label{color:#374151;color:var(--text-primary,#374151);font-size:13px;font-weight:600}.am-form-field small{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:11px;text-align:right}.am-recipient-tabs{display:flex;gap:8px}.am-recipient-tab{align-items:center;background:#0000;border:2px solid #0000001a;border-radius:10px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;display:flex;flex:1 1;flex-direction:column;font-size:12px;font-weight:500;gap:4px;padding:10px 8px;transition:all .2s}.am-recipient-tab.active{background:#6366f114;border-color:#6366f1;color:#6366f1}.am-recipient-count{color:inherit;font-size:16px;font-weight:700}.am-recipient-notice{background:#6366f10f;border-left:3px solid #6366f1;border-radius:8px;color:#6b7280;color:var(--text-secondary,#6b7280);font-size:12px;padding:8px 12px}.am-priority-tabs{display:flex;gap:8px}.am-priority-tab{background:#0000;border:2px solid #0000001a;border-radius:8px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;flex:1 1;font-size:11px;font-weight:600;padding:8px 6px;text-align:center;transition:all .2s}.am-priority-tab:hover{border-color:#0003}.am-detail-text{background:#f9fafb;background:var(--input-bg,#f9fafb);border-radius:8px;color:#111827;color:var(--text-primary,#111827);font-size:14px;line-height:1.6;min-height:40px;padding:12px 14px}.am-detail-title{font-size:16px;font-weight:600}.am-detail-meta-row{display:flex;gap:24px}.am-detail-meta-item{display:flex;flex-direction:column;gap:4px}.am-detail-meta-label{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:11px;letter-spacing:.05em;text-transform:uppercase}.am-detail-meta-value{color:#111827;color:var(--text-primary,#111827);font-size:14px;font-weight:600}@media (max-width:900px){.am-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.am-page-body{padding:16px}.am-stats-row{grid-template-columns:1fr}.am-recipient-tabs{flex-direction:column}.am-priority-tabs{flex-wrap:wrap}}.da-steps{gap:0;margin:20px auto 30px;max-width:420px;padding:0 20px}.da-step{flex:1 1;position:relative}.da-step:not(:last-child):after{background:#e2e8f0;content:"";height:2px;left:calc(50% + 16px);position:absolute;top:16px;width:calc(100% - 32px);z-index:0}.da-step-done:not(:last-child):after{background:#10b981}.da-step-circle{height:32px;width:32px;z-index:1}.da-step-label{text-align:center}.da-container{animation:da-fade-in .3s ease-out;margin:0 auto;max-width:580px;padding:0 16px 30px}@keyframes da-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.da-header{margin-bottom:24px;padding:24px 0 0;text-align:center}.da-header-icon{display:block;font-size:3rem;margin-bottom:12px}.da-header h2{color:#1f2937;font-size:1.6rem;font-weight:700;margin:0 0 8px}.da-header p{color:#6b7280;font-size:.9rem;margin:0}.da-complete-title{color:#10b981!important}.da-warning-box{background:#fff5f5;border:1.5px solid #fecaca;border-radius:14px;margin-bottom:16px;padding:18px 20px}.da-warning-box h3{color:#c53030;font-size:.95rem;font-weight:700;margin:0 0 10px}.da-warning-box ul{color:#c53030;font-size:.85rem;line-height:2;margin:0;padding-left:20px}.da-info-box{background:#f0fff4;border:1.5px solid #c6f6d5;border-radius:14px;margin-bottom:16px;padding:18px 20px}.da-info-box h3{color:#276749;font-size:.95rem;font-weight:700;margin:0 0 10px}.da-info-box p{color:#276749;font-size:.85rem;margin:0 0 8px}.da-info-box ul{color:#276749;font-size:.85rem;line-height:2;margin:0;padding-left:20px}.da-success-box{background:#f0fff4;border:1.5px solid #c6f6d5;border-radius:14px;margin-bottom:16px;padding:18px 20px}.da-success-box h3{color:#276749;font-size:.95rem;font-weight:700;margin:0 0 10px}.da-success-box ul{color:#276749;font-size:.85rem;line-height:2;margin:0;padding-left:20px}.da-export-note{align-items:flex-start;background:#fffbeb;border:1.5px solid #fde68a;border-radius:12px;color:#92400e;display:flex;font-size:.85rem;gap:12px;margin-bottom:20px;padding:14px 16px}.da-export-note span{flex-shrink:0;font-size:1.1rem}.da-export-note p{line-height:1.5;margin:0}.da-error{font-size:.85rem;margin-bottom:16px;padding:12px 16px}.da-reason-box{margin-bottom:16px;position:relative}.da-reason-box label{color:#374151;display:block;font-size:.88rem;font-weight:600;margin-bottom:8px}.da-optional{color:#9ca3af;font-size:.8rem;font-weight:400}.da-textarea{box-sizing:border-box;padding:12px 14px}.da-confirm-box{margin-bottom:20px}.da-confirm-box p{color:#374151;font-size:.88rem;margin:0 0 10px}.da-confirm-code{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#ef4444;font-family:monospace;font-size:.9rem;font-weight:700;padding:2px 8px}.da-confirm-input{border:2px solid #e2e8f0;border-radius:10px;box-sizing:border-box;color:#1f2937;font-family:monospace;font-size:1rem;padding:12px 16px;transition:border-color .2s ease;width:100%}.da-confirm-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.da-confirm-input-error{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.da-confirm-input-valid{border-color:#10b981!important;box-shadow:0 0 0 3px #10b9811a!important}.da-confirm-hint{color:#ef4444;display:block;font-size:.78rem;margin-top:6px}.da-button-group{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin-top:24px}.da-button-group-center{justify-content:center}.da-btn{display:flex;font-size:.9rem;gap:8px;min-width:110px;padding:11px 22px;transition:all .25s ease}.da-btn:disabled{opacity:.55}.da-btn-secondary{background:#fff;border:2px solid #667eea;color:#667eea}.da-btn-secondary:hover:not(:disabled){background:#f5f3ff}.da-spinner{height:16px;width:16px}.da-complete .da-header-icon{animation:da-pop .5s ease-out}.da-footer{margin-left:auto;margin-right:auto;margin-top:10px;max-width:580px;padding:20px}.da-footer p{font-size:.78rem;margin:4px 0}@media (max-width:600px){.da-container{padding:0 12px 24px}.da-header h2{font-size:1.35rem}.da-button-group{flex-direction:column}.da-btn{width:100%}.da-steps{padding:0 10px}.da-step-label{font-size:10px}}.da-page{background:#f8fafc;color:#1f2937;display:flex;flex-direction:column;font-family:Inter,Segoe UI,Arial,sans-serif;height:100vh;overflow:hidden;width:100%}.da-page,.da-page *,.da-page :after,.da-page :before{box-sizing:border-box}.da-header-row{background:#fff;border-bottom:1px solid #e2e8f0;flex-shrink:0;height:64px;justify-content:space-between;padding:0 16px}.da-header-row,.da-logo-wrap{align-items:center;display:flex}.da-logo-wrap{flex:1 1;justify-content:center}.da-logo{height:36px;object-fit:contain}.da-body{align-items:center;display:flex;flex:1 1;flex-direction:column;overflow-y:auto;padding:24px 16px 40px}.da-body::-webkit-scrollbar{width:6px}.da-body::-webkit-scrollbar-track{background:#f1f5f9}.da-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.da-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.da-steps{justify-content:center;margin-bottom:28px;max-width:360px;width:100%}.da-step,.da-steps{align-items:center;display:flex}.da-step{flex-direction:column;flex-shrink:0;gap:6px}.da-step-line{background:#e2e8f0;flex:1 1;height:2px;margin:0 4px 22px;transition:background .3s ease}.da-step-line-done{background:#10b981}.da-step-circle{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:50%;color:#9ca3af;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:34px;justify-content:center;transition:all .3s ease;width:34px}.da-step-active .da-step-circle{background:#667eea;border-color:#667eea;box-shadow:0 0 0 4px #667eea26;color:#fff}.da-step-done .da-step-circle{background:#10b981;border-color:#10b981;color:#fff}.da-step-label{color:#9ca3af;font-size:11px;font-weight:600;white-space:nowrap}.da-step-active .da-step-label{color:#667eea}.da-step-done .da-step-label{color:#10b981}.da-card{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000012;margin-bottom:20px;max-width:560px;padding:28px 28px 24px;width:100%}.da-animate{animation:da-fade-up .3s ease-out}@keyframes da-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.da-card-title-block{margin-bottom:22px;text-align:center}.da-card-icon{display:block;font-size:2.8rem;margin-bottom:10px}.da-card-title{color:#1f2937;font-size:1.5rem;font-weight:700;margin:0 0 6px}.da-card-subtitle{color:#6b7280;font-size:.88rem;margin:0}.da-title-success{color:#10b981}.da-icon-pop{animation:da-pop .5s ease-out}@keyframes da-pop{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.25)}to{opacity:1;transform:scale(1)}}.da-box{border-radius:12px;margin-bottom:14px;padding:16px 18px}.da-box h3{font-size:.9rem;font-weight:700;margin:0 0 10px}.da-box p{font-size:.84rem;line-height:1.5;margin:0 0 6px}.da-box p:last-child{margin-bottom:0}.da-box ul{font-size:.84rem;line-height:2;margin:0;padding-left:20px}.da-box-warning{background:#fff5f5;border:1.5px solid #fecaca}.da-box-warning h3,.da-box-warning ul{color:#c53030}.da-box-info{background:#f0fff4;border:1.5px solid #c6f6d5}.da-box-info h3,.da-box-info p,.da-box-info ul{color:#276749}.da-box-success{background:#f0fff4;border:1.5px solid #c6f6d5}.da-box-success h3,.da-box-success p,.da-box-success ul{color:#276749}.da-box-note{align-items:flex-start;background:#fffbeb;border:1.5px solid #fde68a;color:#92400e;display:flex;font-size:.84rem;gap:12px}.da-box-note p{color:#92400e;line-height:1.5;margin:0}.da-field{margin-bottom:16px}.da-label{color:#374151;display:block;font-size:.88rem;font-weight:600;margin-bottom:8px}.da-label-optional{color:#9ca3af;font-size:.8rem;font-weight:400}.da-textarea-wrap{position:relative}.da-textarea{background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;color:#1f2937;font-family:inherit;font-size:.88rem;padding:11px 14px;resize:vertical;transition:border-color .2s ease;width:100%}.da-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.da-char-count{bottom:10px;color:#9ca3af;font-size:.72rem;pointer-events:none;position:absolute;right:12px}.da-code{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:6px;color:#ef4444;font-size:.9rem;font-weight:700;padding:2px 8px}.da-code,.da-input{font-family:monospace}.da-input{background:#fff;border:2px solid #e2e8f0;border-radius:10px;color:#1f2937;font-size:1rem;padding:11px 16px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.da-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.da-input-error{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44441a!important}.da-input-valid{border-color:#10b981!important;box-shadow:0 0 0 3px #10b9811a!important}.da-field-hint{color:#ef4444;display:block;font-size:.78rem;margin-top:6px}.da-error{background:#fee2e2;border:1.5px solid #fecaca;border-radius:10px;color:#991b1b;font-size:.84rem;margin-bottom:14px;padding:11px 16px}.da-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:22px}.da-actions-center,.da-btn{justify-content:center}.da-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.88rem;font-weight:600;gap:7px;min-width:100px;padding:10px 20px;transition:all .22s ease;white-space:nowrap}.da-btn:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.da-btn-cancel{background:#fff;border:2px solid #e2e8f0;color:#6b7280}.da-btn-cancel:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}.da-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 3px 10px #667eea59;color:#fff}.da-btn-primary:hover:not(:disabled){box-shadow:0 6px 16px #667eea73;transform:translateY(-2px)}.da-btn-outline{background:#fff;border:2px solid #667eea;color:#667eea}.da-btn-outline:hover:not(:disabled){background:#f5f3ff}.da-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 3px 10px #ef44444d;color:#fff}.da-btn-danger:hover:not(:disabled){box-shadow:0 6px 16px #ef444466;transform:translateY(-2px)}.da-spinner{animation:da-spin .7s linear infinite;border:2px solid #ffffff59;border-radius:50%;border-top-color:#fff;display:inline-block;flex-shrink:0;height:15px;width:15px}@keyframes da-spin{to{transform:rotate(1turn)}}.da-footer{border-top:1px solid #e2e8f0;margin-top:4px;max-width:560px;padding:16px 20px;text-align:center;width:100%}.da-footer p{color:#9ca3af;font-size:.76rem;margin:3px 0}.da-footer a{color:#667eea;font-weight:600;text-decoration:none}.da-footer a:hover{text-decoration:underline}@media (max-width:600px){.da-card{padding:20px 16px}.da-card-title{font-size:1.25rem}.da-card-icon{font-size:2.2rem}.da-actions{flex-direction:column}.da-btn{width:100%}.da-steps{max-width:300px}.da-step-label{font-size:10px}}@media (max-width:380px){.da-body{padding:16px 10px 32px}.da-card{padding:16px 12px}}.knowledge-post-card{background:#fff;border-left:4px solid #667eea;border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;flex-direction:column;margin:15px 0;overflow:hidden;padding:20px;position:relative;transition:all .3s ease;width:80%}.knowledge-post-card:hover{border-left-color:#764ba2;box-shadow:0 5px 15px #667eea33;transform:translateY(-5px)}@media (max-width:768px){.knowledge-post-card{padding:16px;width:90%}}@media (max-width:480px){.knowledge-post-card{padding:14px;width:95%}}.knowledge-post-header{align-items:center;display:flex;gap:15px;margin-bottom:15px}.post-icon{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;display:flex;flex-shrink:0;font-size:2.5rem;height:60px;justify-content:center;width:60px}@media (max-width:768px){.post-icon{font-size:2rem;height:50px;width:50px}}@media (max-width:480px){.post-icon{font-size:1.8rem;height:45px;width:45px}}.post-meta{flex:1 1;min-width:0}.post-title{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.post-title{font-size:1.1rem}}@media (max-width:480px){.post-title{font-size:1rem}}.post-timestamp{color:#718096;font-size:.85rem;margin:0}@media (max-width:480px){.post-timestamp{font-size:.8rem}}.knowledge-post-content{margin-bottom:15px}.post-preview{color:#4a5568;font-size:.95rem;line-height:1.6;margin:0}@media (max-width:480px){.post-preview{font-size:.9rem}}.knowledge-post-footer{align-items:center;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;padding-top:12px}.read-more{color:#667eea;font-size:.9rem;font-weight:600;transition:all .3s ease}.knowledge-post-card:hover .read-more{color:#764ba2;transform:translateX(5px)}@media (max-width:480px){.read-more{font-size:.85rem}}.knowledge-post-detail-content{background:#f9fafb;border-radius:8px;padding:20px}@media (max-width:768px){.knowledge-post-detail-content{padding:16px}}@media (max-width:480px){.knowledge-post-detail-content{padding:14px}}.post-stat-box{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;box-shadow:0 4px 6px #0000001a;display:flex;gap:15px;margin-bottom:20px;padding:15px}@media (max-width:768px){.post-stat-box{gap:12px;padding:12px}}@media (max-width:480px){.post-stat-box{gap:10px;padding:10px}}.post-stat-icon{align-items:center;background:#fff;border-radius:10px;display:flex;flex-shrink:0;font-size:2rem;height:50px;justify-content:center;width:50px}@media (max-width:768px){.post-stat-icon{font-size:1.8rem;height:45px;width:45px}}@media (max-width:480px){.post-stat-icon{font-size:1.5rem;height:40px;width:40px}}.post-stat-info{color:#fff;flex:1 1}.post-stat-label{font-size:.85rem;margin:0 0 4px;opacity:.9}.post-stat-value{font-size:1.5rem;font-weight:700;margin:0}@media (max-width:768px){.post-stat-label{font-size:.8rem}.post-stat-value{font-size:1.3rem}}@media (max-width:480px){.post-stat-label{font-size:.75rem}.post-stat-value{font-size:1.2rem}}.edit-form{gap:20px}.edit-form,.form-field{display:flex;flex-direction:column}.form-field{gap:8px}.label-icon{align-items:center;color:#2d3748;display:flex;font-size:.95rem;font-weight:600;gap:8px}@media (max-width:480px){.label-icon{font-size:.9rem}}.subject-input{border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;padding:12px 16px;transition:all .3s ease;width:100%}.subject-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}@media (max-width:480px){.subject-input{font-size:.95rem;padding:10px 14px}}.content-textarea{border:2px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:.95rem;line-height:1.6;min-height:200px;padding:12px 16px;resize:vertical;transition:all .3s ease;width:100%}.content-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}@media (max-width:480px){.content-textarea{font-size:.9rem;min-height:180px;padding:10px 14px}}.char-counter{margin-bottom:8px;margin-top:-12px}.save-changes-btn{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;justify-content:center;padding:14px 24px;transition:all .3s ease}.save-changes-btn:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px #10b9814d;transform:translateY(-2px)}.save-changes-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:480px){.save-changes-btn{font-size:.95rem;padding:12px 20px}}.view-content{display:flex;flex-direction:column;gap:14px}.content-section,.subject-section{background:#fff;border-left:4px solid #667eea;border-radius:8px;padding:20px}@media (max-width:768px){.content-section,.subject-section{padding:16px}}@media (max-width:480px){.content-section,.subject-section{padding:14px}}.content-section h3,.subject-section h3{align-items:center;color:#2d3748;display:flex;font-size:1rem;font-weight:600;gap:8px;margin:0 0 12px}@media (max-width:480px){.content-section h3,.subject-section h3{font-size:.8rem}}.subject-text{color:#4a5568;font-size:1.05rem;font-weight:600;line-height:1.6;margin:0}@media (max-width:480px){.subject-text{font-size:1rem}}.content-text{color:#4a5568;font-size:.95rem;line-height:1.8}.content-text p{margin:0 0 12px}.content-text p:last-child{margin-bottom:0}@media (max-width:480px){.content-text{font-size:.9rem;line-height:1.7}.content-text p{margin:0 0 10px}}.ks-modal-action-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1.2rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.ks-modal-action-btn.edit-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.ks-modal-action-btn.edit-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:scale(1.1)}.ks-modal-action-btn.delete-btn,.ks-modal-action-btn.edit-btn.active{background:linear-gradient(135deg,#ef4444,#dc2626)}.ks-modal-action-btn.delete-btn{color:#fff}.ks-modal-action-btn.delete-btn:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:scale(1.1)}.ks-modal-action-btn.speak-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.ks-modal-action-btn.speak-btn:hover{background:linear-gradient(135deg,#059669,#047857);transform:scale(1.1)}.ks-modal-action-btn.speak-btn.speaking{animation:pulse 1.5s infinite}@media (max-width:480px){.ks-modal-action-btn{font-size:1.1rem;height:36px;width:36px}}.no-items .hint{color:#9ca3af;font-size:.9rem;margin-top:8px}@media (max-width:480px){.no-items .hint{font-size:.85rem}}.courses-filter-bar{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:14px 20px}.search-box{align-items:center;display:flex;flex:1 1;min-width:260px;position:relative}.search-icon{font-size:16px;left:12px;line-height:1;pointer-events:none;position:absolute}.search-input{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;padding:10px 14px 10px 38px;transition:all .25s ease;width:100%}.search-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.filter-group{display:flex;flex-wrap:wrap;gap:10px}.filter-select{-webkit-appearance:none;appearance:none;background:#f9fafb;background-color:#f9fafb;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%239ca3af' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 32px 10px 14px;transition:all .25s ease}.filter-select:focus{background-color:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.courses-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));padding:4px 0 20px}.course-card{background:#fff;border:1.5px solid #f0f0f0;border-radius:14px;box-shadow:0 2px 10px #00000012;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;position:relative;transition:transform .25s ease,box-shadow .25s ease}.course-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.course-card.is-enrolled{background:linear-gradient(180deg,#fff,#f0fdf4);border-color:#d1fae5}.course-card-accent{background:linear-gradient(90deg,#3b82f6,#6366f1);height:5px}.course-card.is-enrolled .course-card-accent{background:linear-gradient(90deg,#10b981,#059669)}.course-card-body{display:flex;flex:1 1;flex-direction:column;gap:10px;padding:18px 20px 14px}.course-title-price-row{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.course-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#111827;display:-webkit-box;flex:1 1;font-size:16px;font-weight:700;line-height:1.4;margin:0;overflow:hidden}.course-price-block{align-items:flex-end;background:linear-gradient(135deg,#1d4ed8,#2563eb);border-radius:8px;color:#fff;display:flex;flex-direction:column;flex-shrink:0;min-width:58px;padding:6px 12px;text-align:center}.course-price-amount{font-size:18px;font-weight:800;letter-spacing:-.5px;line-height:1.1}.course-price-currency{font-size:10px;font-weight:500;letter-spacing:.5px;opacity:.85;text-transform:uppercase}.course-card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#6b7280;display:-webkit-box;font-size:13.5px;line-height:1.55;margin:0;overflow:hidden}.course-card-meta-row{border-top:1px solid #f3f4f6;color:#4b5563;flex-wrap:wrap;font-size:13px;padding-top:10px}.course-card-meta-row,.meta-chip{align-items:center;display:flex;gap:4px}.meta-chip{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-chip-icon{flex-shrink:0;font-size:13px}.meta-divider{color:#d1d5db;font-weight:400;padding:0 2px}.course-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.tag{align-items:center;border-radius:20px;display:inline-flex;font-size:11.5px;font-weight:600;letter-spacing:.2px;padding:3px 10px}.tag-id{background:#ede9fe;color:#5b21b6}.tag-category{background:#fce7f3;color:#9d174d}.level-beginner,.tag-level{background:#d1fae5;color:#065f46}.level-intermediate{background:#dbeafe;color:#1e40af}.level-advanced{background:#fee2e2;color:#991b1b}.course-card-footer{align-items:center;background:#fafafa;border-top:1px solid #f3f4f6;display:flex;gap:10px;justify-content:space-between;padding:12px 20px}.btn-view-details{background:#0000;border:1.5px solid #3b82f6;border-radius:7px;color:#3b82f6;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .2s ease}.btn-view-details:hover{background:#3b82f6;color:#fff}.btn-add-cart{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:7px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .2s ease}.btn-add-cart:hover{box-shadow:0 4px 12px #10b98159;transform:translateY(-1px)}.enrolled-badge{background:#d1fae5;border-radius:7px;color:#065f46;font-size:13px;font-weight:600;padding:8px 14px;white-space:nowrap}.course-id-badge{background:linear-gradient(135deg,#667eea,#764ba2);font-weight:600;letter-spacing:.5px}.course-category-tag,.course-id-badge{border-radius:6px;color:#fff;font-size:12px;padding:5px 11px}.course-category-tag{background:linear-gradient(135deg,#f093fb,#f5576c);font-weight:500;white-space:nowrap}.course-level-badge{background:linear-gradient(135deg,#2aa17966,#067250);border-radius:6px;color:#fff;font-size:12px;font-weight:500;padding:5px 11px}.no-courses-message{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;grid-column:1/-1;padding:60px 20px;text-align:center}.no-courses-message h3{color:#111827;font-size:22px;margin-bottom:10px}.no-courses-message p{color:#6b7280;font-size:15px}.course-details-container{padding:10px 0}.course-details-header{margin-bottom:28px}.course-title-section{text-align:left}.course-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.course-details-header h2{color:#111827;font-size:26px;font-weight:700;margin-bottom:10px}.course-short-desc{color:#6b7280;font-size:15px;line-height:1.6}.course-info-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:28px}.info-card{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:10px;display:flex;gap:12px;padding:16px;transition:all .25s ease}.info-card:hover{background:#f0f4ff;border-color:#3b82f6}.info-icon{font-size:26px}.info-content{display:flex;flex-direction:column}.info-label{color:#9ca3af;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-value{font-size:15px;font-weight:700;margin-top:3px}.course-section{margin-bottom:26px}.course-section h3{align-items:center;color:#111827;display:flex;font-size:18px;font-weight:700;gap:8px;margin-bottom:12px}.course-long-desc{color:#4b5563;font-size:15px;line-height:1.8}.tags-container{gap:8px}.prerequisite-tag{background:#e0f2fe;color:#0369a1}.course-tag,.prerequisite-tag{border-radius:8px;font-size:13px;font-weight:500;padding:6px 14px}.course-tag{background:#f3e8ff;color:#7c3aed}.modal-footer{background:#f9fafb;gap:12px;padding:18px 20px}.btn-enroll{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:11px 28px;transition:all .25s ease}.btn-enroll:hover:not(:disabled){box-shadow:0 6px 16px #10b98166;transform:translateY(-2px)}.btn-enroll:disabled{cursor:not-allowed;opacity:.6}.btn-open-course{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:11px 28px;transition:all .25s ease}.btn-open-course:hover{box-shadow:0 6px 16px #3b82f666;transform:translateY(-2px)}@media (max-width:768px){.courses-filter-bar{flex-direction:column;gap:12px}.search-box{min-width:100%}.filter-group{width:100%}.filter-select{flex:1 1}.courses-grid{grid-template-columns:1fr}.course-info-grid{grid-template-columns:1fr 1fr}.modal-footer{flex-direction:column}.btn-enroll,.btn-open-course{width:100%}}@media (max-width:480px){.course-card-footer{align-items:stretch;flex-direction:column}.btn-add-cart,.btn-view-details{text-align:center;width:100%}.course-info-grid{grid-template-columns:1fr}.meta-chip{max-width:100%}}.custom-back-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;gap:5px;left:300px;padding:10px 20px;position:fixed;transition:all .3s ease}.custom-back-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 8px #3b82f64d;transform:translateY(-2px)}.custom-back-button:active{box-shadow:0 2px 4px #3b82f633;transform:translateY(0)}.cart-content-area{margin:0 auto;max-width:1300px;padding:20px}.shoppingCart-scrollable-list{height:auto!important;max-height:none!important;overflow-y:auto}.empty-cart{background:#fff;border-radius:16px;box-shadow:0 2px 8px #0000000d;padding:80px 20px;text-align:center}.empty-cart-icon{font-size:80px;margin-bottom:20px;opacity:.5}.empty-cart h2{color:#111827;font-size:26px;font-weight:700;margin-bottom:10px}.empty-cart p{color:#6b7280;font-size:16px;margin-bottom:30px}.btn-browse-courses{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 32px;transition:all .3s ease}.btn-browse-courses:hover{box-shadow:0 8px 20px #3b82f666;transform:translateY(-2px)}.cart-layout{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:1fr 360px}.cart-items-section{background:#fff;border-radius:16px;box-shadow:0 2px 10px #0000000f;min-width:0;padding:24px}.cart-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:22px;padding-bottom:18px}.cart-header h2{color:#111827;font-size:22px;font-weight:700}.select-all-label{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px}.item-checkbox,.select-checkbox{accent-color:#3b82f6;cursor:pointer;height:18px;width:18px}.cart-items-list{display:flex;flex-direction:column;gap:16px}.cart-item-card{grid-gap:16px;align-items:center;border:1.5px solid #e5e7eb;border-radius:12px;display:grid;gap:16px;grid-template-columns:28px 100px 1fr auto;padding:18px;transition:border-color .25s ease,box-shadow .25s ease}.cart-item-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f614}.cart-item-select{align-items:center;display:flex;justify-content:center}.cart-item-image{background:#f3f4f6;border-radius:8px;flex-shrink:0;height:70px;overflow:hidden;width:100px}.cart-item-image img{height:100%;object-fit:cover;width:100%}.placeholder-image{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;font-size:34px;height:100%;justify-content:center;width:100%}.cart-item-details{display:flex;flex-direction:column;gap:5px;min-width:0}.cart-item-title{color:#111827;font-size:16px;font-weight:700;line-height:1.35;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-item-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#6b7280;display:-webkit-box;font-size:13px;line-height:1.5;margin:0;overflow:hidden}.cart-item-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.meta-badge{background:#f3f4f6;border-radius:5px;color:#374151;font-size:11.5px;font-weight:600;padding:3px 9px}.meta-text{color:#6b7280;font-size:12.5px}.cart-item-price{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:10px}.price-display{align-items:baseline;display:flex;gap:3px}.currency{color:#6b7280;font-size:13px;font-weight:500}.amount{color:#111827;font-size:22px;font-weight:800;letter-spacing:-.5px}.btn-remove{background:#0000;border:1.5px solid #fca5a5;border-radius:6px;color:#ef4444;cursor:pointer;font-size:12.5px;font-weight:600;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.btn-remove:hover{background:#ef4444;border-color:#ef4444;color:#fff}.btn-subscription-option{align-self:flex-start;background:#0000;border:1.5px solid #c4b5fd;border-radius:6px;color:#7c3aed;cursor:pointer;font-size:12px;font-weight:600;margin-top:4px;padding:5px 10px;transition:all .2s ease}.btn-subscription-option:hover{background:#7c3aed;color:#fff}.cart-summary-section{align-self:start;display:flex;flex-direction:column;gap:16px}.cart-summary-card{background:#fff;border-radius:16px;box-shadow:0 2px 10px #0000000f;padding:22px;position:-webkit-sticky;position:sticky;top:20px}.cart-summary-card h3{color:#111827;font-size:18px;font-weight:700;margin-bottom:18px}.coupon-section{border-bottom:1.5px solid #e5e7eb;margin-bottom:20px;padding-bottom:18px}.coupon-section label{color:#374151;display:block;font-size:13px;font-weight:600;margin-bottom:8px}.coupon-input-group{display:flex;gap:8px}.coupon-input-group input{border:1.5px solid #e5e7eb;border-radius:7px;flex:1 1;font-size:13px;font-weight:600;letter-spacing:1px;padding:9px 12px;text-transform:uppercase;transition:border-color .2s}.coupon-input-group input:focus{border-color:#3b82f6;outline:none}.btn-apply-coupon{background:#111827;border:none;border-radius:7px;color:#fff;cursor:pointer;font-size:13px;font-weight:700;padding:9px 16px;transition:background .2s;white-space:nowrap}.btn-apply-coupon:hover:not(:disabled){background:#1f2937}.btn-apply-coupon:disabled{cursor:not-allowed;opacity:.5}.btn-remove-coupon{background:#fee2e2;border:none;border-radius:7px;color:#dc2626;cursor:pointer;font-size:13px;font-weight:700;padding:9px 16px;transition:background .2s;white-space:nowrap}.btn-remove-coupon:hover{background:#fca5a5}.coupon-error{color:#dc2626;font-weight:500}.coupon-error,.coupon-success{font-size:12.5px;margin-top:6px}.coupon-success{color:#059669;font-weight:600}.summary-row{align-items:center;color:#374151;display:flex;font-size:14px;justify-content:space-between;padding:9px 0}.summary-value{color:#111827;font-weight:600}.summary-divider{background:#e5e7eb;height:1.5px;margin:10px 0}.total-row{font-size:17px;font-weight:700}.summary-total{color:#2563eb;font-size:22px;font-weight:800;letter-spacing:-.5px}.discount-row span{color:#059669}.summary-discount{color:#059669!important;font-weight:700}.btn-checkout{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;margin-top:18px;padding:14px;transition:all .25s ease;width:100%}.btn-checkout:hover:not(:disabled){box-shadow:0 8px 20px #10b98166;transform:translateY(-2px)}.btn-checkout:disabled{cursor:not-allowed;opacity:.45}.btn-continue-shopping{background:#f3f4f6;border:none;border-radius:10px;color:#374151;cursor:pointer;font-size:14px;font-weight:600;margin-top:10px;padding:12px;transition:background .2s ease;width:100%}.btn-continue-shopping:hover{background:#e5e7eb}.cart-info-box{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1.5px solid #bfdbfe;border-radius:12px;padding:18px}.cart-info-box h4{color:#1e40af;font-size:15px;font-weight:700;margin-bottom:12px}.cart-info-box ul{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.cart-info-box li{color:#1e3a8a;font-size:13.5px;font-weight:500}.payment-modal{max-width:560px}.payment-summary{margin-bottom:24px}.payment-summary h3{color:#111827;font-size:17px;font-weight:700;margin-bottom:14px}.payment-items{background:#f9fafb;border-radius:8px;margin-bottom:12px;padding:14px}.payment-item{color:#374151;font-size:14px;padding:7px 0}.payment-item,.payment-total{display:flex;justify-content:space-between}.payment-total{background:#eff6ff;border-radius:8px;color:#1e40af;font-size:17px;font-weight:700;padding:14px}.stripe-checkout-section{text-align:center}.checkout-info{color:#6b7280;font-size:13.5px;margin-bottom:16px}.btn-stripe-checkout{background:linear-gradient(135deg,#635bff,#4f46e5);border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;letter-spacing:.3px;padding:14px;transition:all .25s ease;width:100%}.btn-stripe-checkout:hover:not(:disabled){box-shadow:0 8px 20px #635bff66;transform:translateY(-2px)}.btn-stripe-checkout:disabled{cursor:not-allowed;opacity:.5}.subscription-modal{max-width:480px}.subscription-course-info{background:#f9fafb;border-radius:10px;margin-bottom:20px;padding:16px}.subscription-course-info h3{color:#111827;font-size:16px;font-weight:700;margin-bottom:6px}.course-total{color:#6b7280;font-size:14px}.subscription-plans{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.subscription-plan-option{align-items:center;border:1.5px solid #e5e7eb;border-radius:10px;cursor:pointer;display:flex;gap:14px;padding:14px;transition:all .2s ease}.subscription-plan-option:hover{background:#f0f9ff;border-color:#3b82f6}.plan-details{display:flex;flex-direction:column;gap:2px}.plan-name{color:#111827;font-size:14px;font-weight:600}.plan-price{color:#6b7280;font-size:13px}.btn-subscribe{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:9px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;padding:13px;transition:all .25s ease;width:100%}.btn-subscribe:hover{box-shadow:0 6px 16px #10b98166;transform:translateY(-2px)}@media (max-width:1024px){.cart-layout{grid-template-columns:1fr}.cart-summary-section{order:-1}.cart-summary-card{position:static}.cart-items-section{order:1}}@media (max-width:768px){.cart-item-card{grid-template-columns:28px 1fr;grid-template-rows:auto auto}.cart-item-image{display:none}.cart-item-details{grid-column:2;grid-row:1}.cart-item-price{align-items:center;flex-direction:row;grid-column:2;grid-row:2;justify-content:space-between}.cart-header{align-items:flex-start;flex-direction:column;gap:12px}}@media (max-width:480px){.cart-content-area{padding:12px}.cart-item-card{grid-template-columns:1fr;text-align:center}.cart-item-select{justify-content:center}.cart-item-price{align-items:center;flex-direction:column}.cart-item-meta{justify-content:center}}.rp-wrapper{box-sizing:border-box;height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;width:100%}.rp-wrapper::-webkit-scrollbar{width:5px}.rp-wrapper::-webkit-scrollbar-track{background:#ffffff08}.rp-wrapper::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}.rp-wrapper::-webkit-scrollbar-thumb:hover{background:#ffffff38}.rp-container{box-sizing:border-box;display:flex;flex-direction:column;gap:28px;max-width:100%;min-width:0;padding:24px 28px;width:100%}.rp-title-section{border-bottom:1px solid #ffffff14;min-width:0;padding-bottom:18px}.rp-title{font-size:20px;font-weight:700;line-height:1.3;margin:0 0 6px;word-break:break-word}.rp-subtitle{font-size:13px;line-height:1.6;margin:0;opacity:.55}.rp-section{display:flex;flex-direction:column;gap:12px;min-width:0}.rp-section-label{font-size:11px;font-weight:600;letter-spacing:.9px;margin:0;opacity:.45;text-transform:uppercase}.rp-loading{align-items:center;display:flex;flex-direction:column;font-size:13px;gap:12px;justify-content:center;opacity:.6;padding:40px 0}.rp-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;width:100%}.rp-stat-card{border-radius:12px;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;justify-content:center;min-height:88px;min-width:0;overflow:hidden;padding:18px 16px;transition:transform .15s ease,box-shadow .15s ease}.rp-stat-card:hover{box-shadow:0 4px 16px #0003;transform:translateY(-2px)}.rp-stat-card--blue{background:#3b82f61f;border:1px solid #3b82f647;color:#60a5fa}.rp-stat-card--green{background:#10b9811f;border:1px solid #10b98147;color:#34d399}.rp-stat-card--purple{background:#8b5cf61f;border:1px solid #8b5cf647;color:#a78bfa}.rp-stat-value{font-size:30px;font-weight:700;letter-spacing:-.5px;line-height:1}.rp-stat-label{font-size:11px;font-weight:500;line-height:1.4;opacity:.72;word-break:break-word}.rp-source-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%}.rp-source-card{border-radius:12px;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:88px;min-width:0;overflow:hidden;padding:16px 18px;transition:transform .15s ease}.rp-source-card:hover{transform:translateY(-2px)}.rp-source-card--amber{background:#f59e0b14;border:1px solid #f59e0b40}.rp-source-card--cyan{background:#06b6d414;border:1px solid #06b6d440}.rp-source-icon{font-size:20px;line-height:1}.rp-source-label{font-size:13px;font-weight:600;line-height:1.3}.rp-source-meta{font-size:12px;line-height:1.4;opacity:.55;word-break:break-word}.rp-actions{display:flex;flex-direction:column;gap:8px}.rp-actions,.rp-btn{min-width:0;width:100%}.rp-btn{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:8px;box-sizing:border-box;color:inherit;cursor:pointer;font-family:inherit;font-size:14px;line-height:1.4;overflow:hidden;padding:13px 18px;text-align:left;transition:background .18s ease,border-color .18s ease,transform .12s ease}.rp-btn:hover:not(:disabled){background:#ffffff17;border-color:#ffffff2e;transform:translateY(-1px)}.rp-btn:active:not(:disabled){transform:translateY(0)}.rp-btn:disabled{cursor:not-allowed;opacity:.4}.rp-btn--primary{background:#3b82f61f;border-color:#3b82f659;color:#93c5fd}.rp-btn--primary:hover:not(:disabled){background:#3b82f638;border-color:#3b82f685}.rp-btn-loading{align-items:center;display:flex;font-size:14px;gap:10px}.rp-loader-sm{display:inline-block;flex-shrink:0;height:14px;width:14px}.rp-btn-description{font-size:12px;font-weight:400;margin-left:6px;opacity:.5}.rp-result{border-radius:10px;display:flex;flex-direction:column;font-size:13px;gap:10px;line-height:1.5;min-width:0;padding:16px 18px;word-break:break-word}.rp-result--success{background:#10b98114;border:1px solid #10b98159}.rp-result--error{background:#ef444414;border:1px solid #ef444459}.rp-result-stats{display:flex;flex-wrap:wrap;font-size:13px;gap:16px;opacity:.8}.rp-result-stats span{align-items:center;display:flex;gap:4px;white-space:nowrap}.rp-result-errors{color:#f87171;display:flex;flex-direction:column;font-size:12px;gap:4px}.rp-error-banner{background:#ef444414;border:1px solid #ef444459;border-radius:8px;color:#f87171;font-size:13px;line-height:1.5;padding:13px 16px;word-break:break-word}.rp-hint{background:#3b82f60d;border:1px solid #3b82f624;border-radius:8px;font-size:12px;line-height:1.8;opacity:.8;padding:14px 18px;word-break:break-word}.rp-hint code{background:#ffffff14;border-radius:4px;font-family:Consolas,Fira Code,monospace;font-size:11px;padding:1px 5px}.rp-files-list{display:flex;flex-direction:column;gap:5px;max-height:300px;min-width:0;overflow-x:hidden;overflow-y:auto;padding-right:6px}.rp-files-list::-webkit-scrollbar{width:4px}.rp-files-list::-webkit-scrollbar-track{background:#ffffff08;border-radius:4px}.rp-files-list::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:4px}.rp-files-list::-webkit-scrollbar-thumb:hover{background:#ffffff38}.rp-file-row{align-items:center;background:#ffffff08;border:1px solid #ffffff0f;border-radius:7px;display:flex;font-size:12px;gap:12px;justify-content:space-between;min-width:0;padding:9px 12px;transition:background .15s ease}.rp-file-row:hover{background:#ffffff0f}.rp-file-name{flex:1 1;min-width:0;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-file-meta{font-feature-settings:"tnum";display:flex;flex-shrink:0;font-size:11px;font-variant-numeric:tabular-nums;gap:12px;opacity:.45;white-space:nowrap}@media (max-width:900px){.rp-container{gap:24px;padding:20px}.rp-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.rp-container{gap:22px;padding:18px 16px}.rp-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rp-source-grid{grid-template-columns:1fr}.rp-stat-value{font-size:26px}}@media (max-width:480px){.rp-container{gap:18px;padding:14px 12px}.rp-source-grid,.rp-stats-grid{grid-template-columns:1fr}.rp-result-stats{gap:10px}.rp-btn{font-size:13px;padding:12px 14px}.rp-btn-description{display:none}.rp-file-meta{gap:8px}}.admin-overview{max-height:calc(100vh - 200px);overflow-y:auto;padding:0 20px;width:100%}@media (max-width:768px){.admin-overview{padding:0 15px}}@media (max-width:480px){.admin-overview{padding:0 10px}}.admin-actions{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:30px}@media (max-width:768px){.admin-actions{gap:12px;margin-bottom:20px}}@media (max-width:480px){.admin-actions{flex-direction:column;gap:10px}}.admin-courses{padding:0 20px;width:100%}@media (max-width:768px){.admin-courses{padding:0 15px}}@media (max-width:480px){.admin-courses{padding:0 10px}}.admin-users{padding:0 20px;width:100%}@media (max-width:768px){.admin-users{padding:0 15px}}@media (max-width:480px){.admin-users{padding:0 10px}}.admin-analytics{padding:0 20px;width:100%}@media (max-width:768px){.admin-analytics{padding:0 15px}}@media (max-width:480px){.admin-analytics{padding:0 10px}}.course-form{display:flex;flex-direction:column;gap:15px}.course-form label{color:#2d3748;display:block;font-size:.95rem;margin-bottom:5px}.course-form textarea{min-height:80px;resize:vertical}@media (max-width:768px){.course-form{gap:12px}.course-form label{font-size:.9rem}.course-form textarea{min-height:70px}}@media (max-width:480px){.course-form{gap:10px}.course-form label{font-size:.85rem}.course-form textarea{min-height:60px}}.admin-general-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;flex-direction:column;justify-content:center;margin:15px 0;overflow:hidden;padding:20px;position:relative;transition:all .3s ease;width:30%}.fcm-title-bar{align-items:center;display:flex;justify-content:space-between;margin:16px}.fcm-title-bar h2{margin:0}.tokens-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:20px;width:90%}.adminFCM-stat-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 4px 15px #667eea4d;color:#fff;padding:15px;text-align:center;transition:transform .3s ease}.adminFCM-stat-card:hover{transform:translateY(-5px)}.adminFCM-stat-card .stat-value{font-size:2rem;font-weight:700;margin-bottom:6px}.adminFCM-stat-card .stat-label{font-size:.9rem;opacity:.9}.admin-action-buttons{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-bottom:25px;width:90%}.btn-primary,.btn-secondary,.btn-warning{border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;padding:15px 10px;transition:all .3s ease}.btn-primary{background:#4caf50}.btn-primary:hover:not(:disabled){background:#45a049;box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.btn-secondary{background:#2196f3;color:#fff}.btn-secondary:hover:not(:disabled){background:#0b7dda;box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.btn-warning{background:#ff9800;color:#fff}.btn-warning:hover:not(:disabled){background:#f57c00;box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.btn-primary:disabled,.btn-secondary:disabled,.btn-warning:disabled{cursor:not-allowed;opacity:.6;transform:none}.btn-refresh{background:linear-gradient(135deg,#607d8b,#546e7a);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:.95rem;padding:12px 20px;transition:all .3s ease}.btn-refresh:hover:not(:disabled){box-shadow:0 4px 12px #607d8b4d}.btn-refresh:disabled{cursor:not-allowed;opacity:.6}.result-box{animation:fcmSlideIn .3s ease-out;border-radius:16px;box-shadow:0 4px 15px #0000001a;margin-bottom:25px;padding:25px}@keyframes fcmSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.result-box.success{background:#d4edda;border:2px solid #c3e6cb;color:#155724}.result-box.warning{background:#fff3cd;border:2px solid #ffeaa7;color:#856404}.result-box.error{background:#f8d7da;border:2px solid #f5c6cb;color:#721c24}.result-box h3{font-size:1.375rem;font-weight:700;margin-bottom:15px;margin-top:0}.result-box pre{font-family:inherit;font-size:1rem;line-height:1.8;margin:0;white-space:pre-wrap}.details-section{background:#0000000d;border-radius:12px;margin-top:20px;padding:18px}.details-section summary{border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:12px;transition:background .2s;-webkit-user-select:none;user-select:none}.details-section summary:hover{background:#00000014}.details-section[open] summary{margin-bottom:18px}.users-table{background:#fff;border-collapse:collapse;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-top:15px;overflow:hidden;width:100%}.users-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.users-table th{font-size:.95rem;font-weight:600;padding:14px 12px;text-align:left}.users-table td{word-wrap:break-word;border-bottom:1px solid #eee;font-size:.9rem;overflow-wrap:break-word;padding:12px}.users-table tbody tr:hover{background:#f7f9fc}.users-table tbody tr:last-child td{border-bottom:none}.error-code{color:#d32f2f;font-family:Courier New,monospace;font-size:.85rem;font-weight:500}.user-email{color:#530dd5;font-size:.875rem}.user-email,.user-id{font-family:Courier New,monospace;word-break:break-all}.user-id{color:#666;font-size:.8rem}.date-time{color:#2a2929;font-family:Courier New,monospace;font-size:.8rem}.info-panel{background:linear-gradient(135deg,#2196f31a,#2196f30d);border-left:4px solid #2196f3;border-radius:16px;cursor:pointer;margin:20px;padding:15px;transition:all .3s ease}.info-panel:hover{background:linear-gradient(135deg,#2196f326,#2196f314)}.info-panel h3{color:#1565c0;font-size:1.25rem;font-weight:700;margin-bottom:15px;margin-top:0}.info-panel ul{margin:10px 0;padding-left:25px}.info-panel li{font-size:.95rem;line-height:1.6;margin:15px 0}.info-panel strong{color:#0d47a1;font-weight:600}.registered-users-section{background:#fff;border-radius:16px;box-shadow:0 4px 15px #00000014;margin:20px;padding:20px}.registered-users-section summary{border-radius:8px;color:#2d3748;cursor:pointer;font-size:1.125rem;font-weight:700;padding:12px;transition:background .2s}.registered-users-section summary:hover{background:#f7f9fc}.broadcast-modal-overlay{align-items:center;animation:fcmFadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}@keyframes fcmFadeIn{0%{opacity:0}to{opacity:1}}.broadcast-modal-content{animation:fcmSlideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0003;max-width:600px;overflow:hidden;width:90%}@keyframes fcmSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.broadcast-modal-header{align-items:center;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff;display:flex;justify-content:space-between;padding:20px 25px}.broadcast-modal-header h3{font-size:1.25rem;margin:0}.modal-close-btn{background:none;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1.25rem;padding:4px 8px;transition:background .2s}.modal-close-btn:hover{background:#fff3}.broadcast-modal-body{padding:25px}.broadcast-form-group{margin-bottom:20px}.broadcast-form-group label{color:#2d3748;display:block;font-size:.95rem;font-weight:600;margin-bottom:8px}.broadcast-form-group input,.broadcast-form-group textarea{border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:1rem;padding:12px 15px;transition:border-color .2s;width:100%}.broadcast-form-group input:focus,.broadcast-form-group textarea:focus{border-color:#2196f3;outline:none}.broadcast-form-group textarea{min-height:100px;resize:vertical}.char-count{color:#718096;display:block;font-size:.875rem;margin-top:5px;text-align:right}.broadcast-warning{background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:2px solid #ffc107;border-radius:8px;color:#856404;font-weight:600;margin-top:15px;padding:15px;text-align:center}.broadcast-modal-actions{display:flex;gap:12px;padding:0 25px 25px}.btn-cancel,.btn-send{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:12px 20px;transition:all .2s}.btn-send{background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}.btn-send:hover:not(:disabled){background:linear-gradient(135deg,#1976d2,#1565c0);box-shadow:0 6px 12px #2196f34d;transform:translateY(-2px)}.btn-send:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.tokens-stats{gap:12px;grid-template-columns:1fr}.admin-action-buttons{flex-direction:column;gap:12px}.btn-primary,.btn-secondary,.btn-warning{width:100%}.users-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}}@media (max-width:480px){.btn-primary,.btn-secondary,.btn-warning{font-size:13px}.broadcast-modal-actions{flex-direction:column}.broadcast-modal-content{width:95%}}@media (max-width:380px){.users-table thead{display:none}.users-table,.users-table tbody,.users-table tr{display:block;width:100%}.users-table tr{background:#fff;border:1px solid #ddd;border-radius:8px;margin-bottom:15px;padding:10px}.users-table td{border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:8px 0;text-align:right;white-space:normal}.users-table td:last-child{border-bottom:none}.users-table td:before{color:#667eea;content:attr(data-label);font-weight:600;margin-right:10px;text-align:left;width:70px}}.fcm-scrollable{height:calc(100vh - 180px);overflow-x:hidden;overflow-y:auto;padding:20px;scroll-behavior:smooth}.fcm-scrollable::-webkit-scrollbar{width:6px}.fcm-scrollable::-webkit-scrollbar-track{background:#0000}.fcm-scrollable::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:10px}.fcm-scrollable::-webkit-scrollbar-thumb:hover{background:#a0aec0}.shadow-button{border:2px solid #0000;border-radius:12px;box-shadow:0 4px 6px #0000001a;display:inline-block;transition:all .3s ease}.shadow-button:hover{box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}@media (max-width:768px){.shadow-button:hover{transform:translateY(-1px)}}.custom-button{border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:12px 32px;text-transform:uppercase;transition:all .3s ease;width:100%}.custom-button:hover:not(:disabled){filter:brightness(1.1);transform:scale(1.02)}.custom-button:active:not(:disabled){transform:scale(.98)}.custom-button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.custom-button{font-size:15px;padding:10px 28px}}@media (max-width:480px){.custom-button{font-size:14px;padding:10px 24px}}.compact-action-bar{align-items:center;background:#fff;display:flex;flex-wrap:wrap;gap:10px;padding:10px 20px}@media (max-width:768px){.compact-action-bar{gap:8px;padding:8px 15px}}@media (max-width:480px){.compact-action-bar{align-items:stretch;flex-direction:column;gap:6px;padding:8px 10px}}.compact-btn{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .3s ease;white-space:nowrap}.compact-btn:hover{box-shadow:0 4px 8px #0003;transform:translateY(-2px)}@media (max-width:768px){.compact-btn{font-size:13px;padding:7px 14px}}@media (max-width:480px){.compact-btn{font-size:12px;padding:8px 12px;white-space:normal;width:100%}}.compact-btn-back{background:#6b7280}.compact-btn-primary{background:linear-gradient(135deg,#10b981,#059669)}.compact-btn-secondary{background:linear-gradient(135deg,#667eea,#764ba2)}.compact-btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.compact-btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.compact-btn-info{background:#3b82f6}.search-filter-bar{align-items:center;background:#fff;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px;padding:10px 20px}.search-filter-input{border:2px solid #e0e0e0;border-radius:8px;flex:1 1;font-size:14px;min-width:200px;padding:8px 12px;transition:border-color .3s}.search-filter-input:focus{border-color:#667eea;outline:none}.search-filter-select{background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:14px;min-width:150px;padding:8px 12px;transition:border-color .3s}.search-filter-select:focus{border-color:#667eea;outline:none}@media (max-width:768px){.search-filter-bar{gap:8px;padding:8px 15px}.search-filter-input{font-size:13px;min-width:150px;padding:7px 10px}.search-filter-select{font-size:13px;min-width:120px;padding:7px 10px}}@media (max-width:480px){.search-filter-bar{flex-direction:column;gap:8px;padding:8px 10px}.search-filter-input,.search-filter-select{font-size:13px;min-width:0;min-width:auto;padding:8px 10px;width:100%}}.modal-course-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:20px}.modal-action-btn{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .3s ease}.modal-action-btn:hover{box-shadow:0 4px 8px #0003;transform:translateY(-2px)}@media (max-width:768px){.modal-course-actions{gap:6px;margin-bottom:15px}.modal-action-btn{font-size:12px;padding:7px 14px}}@media (max-width:480px){.modal-course-actions{flex-direction:column;gap:6px;margin-bottom:12px}.modal-action-btn{font-size:12px;padding:8px 12px;width:100%}}.content-section-divider{border-top:2px solid #e9ecef;margin-bottom:15px;padding-top:15px}.content-section-title{color:#2d3748;font-size:1.1rem;font-weight:600;margin:0 0 10px}.content-actions-grid{display:flex;flex-wrap:wrap;gap:8px}.content-action-btn{border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .3s ease}.content-action-btn:hover{box-shadow:0 4px 8px #0003;transform:translateY(-2px)}@media (max-width:768px){.content-section-divider{margin-bottom:12px;padding-top:12px}.content-section-title{font-size:1rem;margin-bottom:8px}.content-actions-grid{gap:6px}.content-action-btn{font-size:12px;padding:7px 14px}}@media (max-width:480px){.content-section-divider{margin-bottom:10px;padding-top:10px}.content-section-title{font-size:.95rem;margin-bottom:8px}.content-actions-grid{flex-direction:column;gap:6px}.content-action-btn{font-size:12px;padding:8px 12px;width:100%}}.form-actions{gap:10px;margin-top:20px}.form-btn{border-radius:8px;color:#fff;flex:1 1;padding:10px;transition:all .3s ease}.form-btn:hover{box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.form-btn-save{background:linear-gradient(135deg,#10b981,#059669)}.form-btn-cancel{background:#6b7280}@media (max-width:768px){.form-actions{gap:8px;margin-top:15px}.form-btn{font-size:13px;padding:9px}}@media (max-width:480px){.form-actions{flex-direction:column;gap:8px;margin-top:12px}.form-btn{font-size:13px;padding:10px;width:100%}}.category-card-icon{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;font-size:2rem;height:80px;justify-content:center;margin-bottom:10px;width:80px}.category-card-description{color:#6b7280;font-size:.85rem;line-height:1.4;min-height:40px;text-align:center}@media (max-width:768px){.category-card-icon{font-size:1.75rem;height:70px;width:70px}.category-card-description{font-size:.8rem;min-height:36px}}@media (max-width:480px){.category-card-icon{font-size:1.5rem;height:60px;width:60px}.category-card-description{font-size:.75rem;min-height:32px}}.category-detail-header{margin:15px 0;text-align:center}.category-detail-title{color:#2d3748;font-size:1.5rem;font-weight:700;margin:5px 0}.category-detail-subtitle{color:#6b7280;font-size:1rem;margin:5px 0}@media (max-width:768px){.category-detail-header{margin:12px 0}.category-detail-title{font-size:1.3rem}.category-detail-subtitle{font-size:.9rem}}@media (max-width:480px){.category-detail-header{margin:10px 0}.category-detail-title{font-size:1.1rem}.category-detail-subtitle{font-size:.85rem}}.no-items-enhanced{color:#999;padding:60px 20px;text-align:center}.no-items-enhanced p{color:#6b7280;font-size:1.1rem;margin-bottom:20px}.no-items-enhanced .icon{font-size:4rem;margin-bottom:15px;opacity:.5}@media (max-width:768px){.no-items-enhanced{padding:50px 15px}.no-items-enhanced p{font-size:1rem;margin-bottom:15px}.no-items-enhanced .icon{font-size:3.5rem;margin-bottom:12px}}@media (max-width:480px){.no-items-enhanced{padding:40px 10px}.no-items-enhanced p{font-size:.95rem;margin-bottom:12px}.no-items-enhanced .icon{font-size:3rem;margin-bottom:10px}.hide-mobile{display:none!important}}@media (max-width:768px){.hide-tablet{display:none!important}}.show-mobile{display:none!important}@media (max-width:480px){.show-mobile{display:block!important}}.scrollable-courses{animation:slideUp .4s ease-out;display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:70px;max-height:calc(100vh - 350px);overflow-y:auto;padding:10px 20px;width:100%}@media (max-width:768px){.scrollable-courses{gap:15px;margin-bottom:60px;max-height:calc(100vh - 320px);padding:10px 15px}}@media (max-width:480px){.scrollable-courses{gap:12px;margin-bottom:50px;max-height:calc(100vh - 380px);padding:10px}}.cateogry-tags{background:linear-gradient(135deg,#e8e097,#decd37);border-radius:12px;color:#3b4bbc;font-size:.75rem;font-weight:500;padding:4px 10px}.course-form-modal .modal-content{max-height:90vh;max-width:900px;overflow-y:auto}.course-form-container{display:flex;flex-direction:column;gap:24px}.form-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.form-section .section-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e5e7eb}.form-section .section-header h4{color:#fff;font-size:16px;font-weight:600;margin:0}.form-section .section-content{background:#fff;padding:20px}.admincourse-form-row{display:flex;gap:16px;margin-bottom:16px}.admincourse-form-row:last-child{margin-bottom:0}.admincourse-form-row.two-columns{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.admincourse-form-field{display:flex;flex-direction:column;gap:6px}.admincourse-form-field.full-width{width:100%}.admincourse-form-field label{align-items:center;color:#374151;display:flex;font-size:14px;font-weight:500;gap:4px}.admincourse-form-field label .required{color:#ef4444;font-weight:700}.admincourse-form-field label .optional{color:#9ca3af;font-size:12px;font-weight:400}.form-input,.form-select,.form-textarea{border-radius:6px;font-family:inherit;transition:all .2s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.form-textarea{min-height:100px}.field-hint{font-size:12px;line-height:1.4;margin-top:4px}.field-hint.policy-hint{background:#f3f4f6;border-radius:4px;margin-top:8px;padding:8px 12px}.hint-success{color:#059669;font-weight:500}.hint-warning{color:#d97706;font-weight:500}.external-link{color:#3b82f6;font-weight:500;text-decoration:none;transition:color .2s}.external-link:hover{color:#2563eb;text-decoration:underline}.checkbox-label{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:8px 0}.checkbox-label input[type=checkbox]{accent-color:#667eea;cursor:pointer;height:18px;width:18px}.checkbox-label:hover{color:#667eea}.checkbox-group{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;display:flex;flex-direction:column;gap:4px;padding:12px}.plan-amount{color:#6b7280;font-size:13px;margin-left:8px}.form-actions{background:#f9fafb;border-top:1px solid #e5e7eb;bottom:0;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding:20px;position:-webkit-sticky;position:sticky}.form-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px;padding:10px 24px;transition:all .2s}.form-btn-save{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.form-btn-save:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.form-btn-cancel{background:#e5e7eb;color:#374151}.form-btn-cancel:hover{background:#d1d5db}@media (max-width:768px){.course-form-modal .modal-content{max-width:95%}.admincourse-form-row.two-columns{grid-template-columns:1fr}}.field-hint,.form-section .section-header{align-items:center;display:flex;justify-content:space-between}.form-section .section-header{padding:12px 20px}.btn-add-coupon{background:#fff;border:2px solid #fff;border-radius:6px;box-shadow:0 2px 4px #0000001a;color:#667eea;cursor:pointer;font-size:14px;font-weight:600;padding:8px 20px;transition:all .2s}.btn-add-coupon:hover{background:#fffffff2;box-shadow:0 4px 8px #00000026;transform:translateY(-2px)}.coupon-form{background:linear-gradient(135deg,#f9fafb,#fff);border:2px dashed #667eea;border-radius:12px;box-shadow:0 2px 8px #667eea1a;margin-bottom:24px;padding:24px}.coupon-form-actions{border-top:2px solid #e5e7eb;display:flex;gap:12px;margin-top:20px;padding-top:20px}.btn-save-coupon{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;box-shadow:0 4px 12px #10b9814d;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 28px;transition:all .3s}.btn-save-coupon:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 16px #10b98166;transform:translateY(-2px)}.btn-cancel-coupon{background:#f3f4f6;border:2px solid #e5e7eb;border-radius:8px;color:#374151;cursor:pointer;font-size:14px;font-weight:600;padding:12px 28px;transition:all .2s}.btn-cancel-coupon:hover{background:#e5e7eb;border-color:#d1d5db}.coupons-list{margin-top:24px}.coupons-list h5{align-items:center;color:#1f2937;display:flex;font-size:16px;font-weight:700;gap:8px;margin:0 0 20px}.coupons-list h5:before{content:"🎟️";font-size:20px}.no-coupons{background:linear-gradient(135deg,#f9fafb,#fff);border:2px dashed #d1d5db;border-radius:12px;padding:60px 20px;text-align:center}.no-coupons p{color:#6b7280;font-size:14px;margin:0}.coupon-card{background:linear-gradient(135deg,#fff,#f9fafb);border:2px solid #e5e7eb;border-radius:16px;margin-bottom:16px;overflow:hidden;padding:20px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.coupon-card:before{background:linear-gradient(135deg,#667eea,#764ba2);content:"";height:100%;left:0;position:absolute;top:0;transition:width .3s;width:6px}.coupon-card:hover{border-color:#667eea;box-shadow:0 8px 24px #667eea33;transform:translateY(-4px)}.coupon-card:hover:before{width:8px}.coupon-card.inactive{background:#f9fafb;border-color:#d1d5db;opacity:.5}.coupon-card.inactive:before{background:#9ca3af}.coupon-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px;padding-left:12px}.coupon-code-badge{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;box-shadow:0 4px 12px #667eea4d;color:#fff;display:inline-flex;font-size:16px;font-weight:800;letter-spacing:1px;padding:10px 20px;position:relative}.coupon-code-badge:before{content:"🎫";font-size:18px;margin-right:8px}.coupon-code-badge:after{left:-6px}.coupon-code-badge:after,.coupon-code-badge:before{background:#fff;border-radius:50%;content:"";height:12px;position:absolute;top:50%;transform:translateY(-50%);width:12px}.coupon-code-badge:before{right:-6px}.coupon-status{align-items:center;border-radius:20px;display:inline-flex;font-size:12px;font-weight:700;letter-spacing:.5px;padding:6px 14px;text-transform:uppercase}.status-active{background:#d1fae5;border:2px solid #10b981;color:#065f46}.status-inactive{background:#f3f4f6;border:2px solid #d1d5db;color:#6b7280}.coupon-details{margin-bottom:16px;padding-left:12px}.coupon-discount{align-items:center;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:2px solid #10b981;border-radius:12px;display:flex;gap:12px;margin-bottom:12px;padding:16px}.discount-label{color:#065f46;font-size:14px;font-weight:600}.discount-value{align-items:baseline;color:#047857;display:flex;font-size:28px;font-weight:900;gap:4px}.discount-value:before{content:"💰";font-size:24px}.coupon-description{background:#f9fafb;border-left:4px solid #667eea;border-radius:6px;color:#4b5563;font-size:14px;font-style:italic;margin-bottom:12px;padding:12px}.coupon-meta{grid-gap:12px;background:#f9fafb;border-radius:8px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding:12px}.meta-item{background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;flex-direction:column;gap:4px;padding:8px}.meta-item strong{color:#6b7280;font-size:11px;letter-spacing:.5px;text-transform:uppercase}.meta-item span{color:#1f2937;font-size:14px;font-weight:600}.coupon-actions{border-top:2px solid #e5e7eb;display:flex;gap:10px;padding-left:12px;padding-top:16px}.btn-delete-coupon,.btn-edit-coupon{align-items:center;background:#fff;border:2px solid;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:13px;font-weight:600;gap:6px;justify-content:center;padding:10px 16px;transition:all .2s}.btn-edit-coupon{border-color:#3b82f6;color:#3b82f6}.btn-edit-coupon:hover{background:#3b82f6;box-shadow:0 4px 12px #3b82f64d;color:#fff;transform:translateY(-2px)}.btn-delete-coupon{border-color:#ef4444;color:#ef4444}.btn-delete-coupon:hover{background:#ef4444;box-shadow:0 4px 12px #ef44444d;color:#fff;transform:translateY(-2px)}.field-hint{color:#6b7280;display:block;font-weight:500;margin-top:6px}.coupon-form .form-input:focus,.coupon-form .form-select:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}@media (max-width:768px){.coupon-header{align-items:flex-start;flex-direction:column;gap:12px}.coupon-meta{grid-template-columns:1fr}.coupon-actions{flex-direction:column}.btn-delete-coupon,.btn-edit-coupon{width:100%}.discount-value{font-size:24px}}.coupon-card{animation:slideIn .3s ease-out}.instructor-management-container{box-sizing:border-box;padding:0 20px;width:100%}@media (max-width:768px){.instructor-management-container{padding:0 15px}}@media (max-width:480px){.instructor-management-container{padding:0 10px}}.instructor-actions-bar{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;gap:15px;justify-content:center;margin-bottom:20px;padding:10px 20px}@media (max-width:768px){.instructor-actions-bar{gap:10px;padding:10px 15px}}@media (max-width:480px){.instructor-actions-bar{flex-direction:column;gap:8px}}.instructor-search-wrapper{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:20px;padding:15px 20px}.instructor-search-input{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;padding:14px 20px;transition:all .3s ease;width:100%}.instructor-search-input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.instructor-search-input::placeholder{color:#94a3b8}@media (max-width:480px){.instructor-search-input{font-size:14px;padding:12px 16px}}.instructor-cards-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:40px;padding:0 20px}@media (max-width:1024px){.instructor-cards-grid{gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (max-width:768px){.instructor-cards-grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));padding:0 15px}}@media (max-width:480px){.instructor-cards-grid{gap:12px;grid-template-columns:1fr;padding:0 10px}}.instructor-card-modern{background:#fff;border:2px solid #0000;border-radius:16px;box-shadow:0 4px 12px #00000014;cursor:pointer;overflow:hidden;padding:24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.instructor-card-modern:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .3s ease}.instructor-card-modern:hover{border-color:#667eea;box-shadow:0 12px 24px #00000026;transform:translateY(-8px)}.instructor-card-modern:hover:before{transform:scaleX(1)}.instructor-card-avatar{border:4px solid #f1f5f9;border-radius:50%;box-shadow:0 4px 12px #0000001a;height:100px;margin:0 auto 16px;object-fit:cover;transition:all .3s ease;width:100px}.instructor-card-modern:hover .instructor-card-avatar{border-color:#667eea;transform:scale(1.05)}.instructor-card-title{color:#1e293b;font-size:18px;font-weight:700;margin:0 0 8px;text-align:center}.instructor-card-department{color:#667eea;font-size:14px;font-weight:600;margin-bottom:12px;text-align:center}.instructor-card-courses{background:#f8fafc;border-radius:8px;color:#64748b;font-size:13px;margin-top:12px;padding:8px 12px;text-align:center}@media (max-width:480px){.instructor-card-modern{padding:20px}.instructor-card-avatar{height:80px;width:80px}.instructor-card-title{font-size:16px}}.instructor-status-badge{border-radius:20px;box-shadow:0 2px 8px #00000026;font-size:11px;font-weight:700;letter-spacing:.5px;padding:6px 12px;position:absolute;right:16px;text-transform:uppercase;top:16px}.instructor-status-badge.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.instructor-status-badge.inactive{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.instructor-modal-stats{grid-gap:16px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:24px;padding:20px}.instructor-stat-item{color:#fff;text-align:center}.instructor-stat-label{display:block;font-size:12px;margin-bottom:8px;opacity:.9}.instructor-stat-value{display:block;font-size:1rem;font-weight:600}@media (max-width:768px){.instructor-modal-stats{gap:12px;grid-template-columns:1fr;padding:16px}.instructor-stat-value{font-size:.8rem}}.instructor-actions-group{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:24px}@media (max-width:768px){.instructor-actions-group{gap:10px;grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.instructor-actions-group{gap:8px;grid-template-columns:1fr}}.instructor-section-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;gap:12px;margin:24px 0 16px;padding:16px 0;position:relative}.instructor-section-header h4{color:#1e293b;font-size:18px;font-weight:700;margin:0}.instructor-section-header:after{background:linear-gradient(90deg,#667eea,#764ba2);bottom:-2px;content:"";height:2px;left:0;position:absolute;width:60px}@media (max-width:480px){.instructor-section-header h4{font-size:16px}}.instructor-courses-list{background:#f8fafc;border-radius:12px;margin-bottom:20px;padding:16px}.instructor-course-item{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;display:flex;justify-content:space-between;margin-bottom:12px;padding:16px;transition:all .3s ease}.instructor-course-item:last-child{margin-bottom:0}.instructor-course-item:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea1a;transform:translateX(4px)}.instructor-course-info strong{color:#1e293b;display:block;font-size:15px;margin-bottom:6px}.instructor-course-meta{color:#64748b;font-size:13px;margin:0}.instructor-course-remove-btn{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .3s ease}.instructor-course-remove-btn:hover{box-shadow:0 4px 12px #ef44444d;transform:translateY(-2px)}@media (max-width:480px){.instructor-course-item{align-items:flex-start;flex-direction:column;gap:12px}.instructor-course-remove-btn{width:100%}}.instructor-info-grid{grid-gap:12px;background:#f8fafc;border-radius:12px;display:grid;gap:12px;grid-template-columns:1fr;padding:16px}.instructor-info-item{background:#fff;border-left:4px solid #667eea;border-radius:8px;color:#475569;font-size:14px;padding:14px 16px}.instructor-info-item strong{color:#1e293b;font-weight:700;margin-right:8px}@media (max-width:480px){.instructor-info-item{font-size:13px;padding:12px 14px}}.instructor-form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin-bottom:24px}@media (max-width:768px){.instructor-form-grid{gap:16px;grid-template-columns:1fr}}.instructor-form-field{display:flex;flex-direction:column;gap:8px}.instructor-form-field.full-width{grid-column:1/-1}.instructor-form-label{color:#1e293b;font-size:14px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.instructor-form-label .required{color:#ef4444;margin-left:4px}.instructor-form-input,.instructor-form-select,.instructor-form-textarea{background:#fff;border:2px solid #e2e8f0;border-radius:10px;font-family:inherit;font-size:15px;padding:12px 16px;transition:all .3s ease}.instructor-form-input:focus,.instructor-form-select:focus,.instructor-form-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.instructor-form-textarea{line-height:1.6;min-height:100px;resize:vertical}@media (max-width:480px){.instructor-form-input,.instructor-form-select,.instructor-form-textarea{font-size:14px;padding:10px 14px}}.instructor-form-actions{border-top:2px solid #e2e8f0;display:flex;gap:12px;margin-top:24px;padding-top:24px}.instructor-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;font-size:15px;font-weight:700;gap:8px;justify-content:center;padding:14px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.instructor-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 12px #667eea4d;color:#fff}.instructor-btn-primary:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.instructor-btn-secondary{background:#fff;border:2px solid #e2e8f0;color:#64748b}.instructor-btn-secondary:hover{background:#f8fafc;border-color:#cbd5e0;transform:translateY(-2px)}@media (max-width:480px){.instructor-form-actions{flex-direction:column}.instructor-btn{width:100%}}.instructor-empty-state{background:#fff;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin:20px;padding:20px 10px;text-align:center}.instructor-empty-icon{font-size:80px;margin-bottom:24px;opacity:.5}.instructor-empty-title{color:#1e293b;font-size:24px;font-weight:700;margin:0 0 12px}.instructor-empty-text{color:#64748b;font-size:16px;margin:0 0 32px}@media (max-width:768px){.instructor-empty-state{margin:30px 15px;padding:60px 30px}.instructor-empty-icon{font-size:60px}.instructor-empty-title{font-size:20px}.instructor-empty-text{font-size:14px}}@media (max-width:480px){.instructor-empty-state{margin:20px 10px;padding:40px 20px}.instructor-empty-icon{font-size:50px}.instructor-empty-title{font-size:18px}}.instructor-loading-container{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;padding:80px 20px}.instructor-loading-spinner{animation:instructor-spin .8s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#667eea;height:60px;width:60px}@keyframes instructor-spin{to{transform:rotate(1turn)}}.instructor-loading-text{color:#64748b;font-size:16px;font-weight:500}@media (max-width:480px){.instructor-loading-container{padding:60px 20px}.instructor-loading-spinner{height:50px;width:50px}.instructor-loading-text{font-size:14px}}.instructor-no-courses{color:#94a3b8;font-style:italic;padding:40px 20px;text-align:center}@media (max-width:1200px){.instructor-management-container{max-width:100%}}@media (max-width:1024px){.instructor-modal-stats{padding:16px}}@media (max-width:768px){.instructor-section-header{padding:12px 0}.instructor-courses-list{padding:12px}}.recognized-instructors-list{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.instructor-list-item{align-items:center;background-color:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:15px 20px;transition:background-color .2s ease}.instructor-list-item:last-child{border-bottom:none}.instructor-list-item:hover{background-color:#f9fafb}.instructor-list-item-info{display:flex;flex-direction:column;gap:4px}.instructor-list-item-name{color:#1f2937;font-size:16px;font-weight:600}.instructor-list-item-email{color:#6b7280;font-size:14px;margin:0}.aim-stats-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.aim-stat-card{align-items:center;background:#fff;background:var(--card-bg,#fff);border:1px solid #00000012;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;gap:12px;padding:14px 16px;transition:transform .2s ease,box-shadow .2s ease}.aim-stat-card:hover{box-shadow:0 4px 14px #00000017;transform:translateY(-2px)}.aim-stat-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:22px;height:44px;justify-content:center;width:44px}.aim-stat-total .aim-stat-icon{background:#667eea1a}.aim-stat-registered .aim-stat-icon{background:#10b9811a}.aim-stat-new .aim-stat-icon{background:#f59e0b1a}.aim-stat-courses .aim-stat-icon{background:#3b82f61a}.aim-stat-info{display:flex;flex-direction:column;gap:1px}.aim-stat-number{font-size:22px;font-weight:700;line-height:1}.aim-stat-total .aim-stat-number{color:#667eea}.aim-stat-registered .aim-stat-number{color:#10b981}.aim-stat-new .aim-stat-number{color:#f59e0b}.aim-stat-courses .aim-stat-number{color:#3b82f6}.aim-stat-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:12px;font-weight:600}.aim-actions-bar{align-items:center;display:flex;gap:12px;margin-bottom:16px}.aim-search-input{background:#fff;background:var(--input-bg,#fff);border:1px solid #e5e7eb;border-radius:8px;color:#111827;color:var(--text-primary,#111827);flex:1 1;font-size:14px;min-width:0;outline:none;padding:9px 14px;transition:border-color .2s}.aim-search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.aim-section{margin-bottom:24px}.aim-section-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;gap:10px;margin-bottom:14px;padding-bottom:10px;position:relative}.aim-section-header:after{background:linear-gradient(90deg,#667eea,#764ba2);bottom:-2px;content:"";height:2px;left:0;position:absolute;width:50px}.aim-section-header h3{color:#1e293b;color:var(--text-primary,#1e293b);font-size:16px;font-weight:700;margin:0}.aim-section-count{background:#667eea1a;border-radius:20px;color:#667eea;font-size:12px;font-weight:700;padding:2px 9px}.aim-cards-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));padding-bottom:4px}.aim-instructor-card{align-items:center;background:#fff;background:var(--card-bg,#fff);border:2px solid #0000;border-radius:14px;box-shadow:0 2px 10px #00000012;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding:18px 14px 14px;position:relative;text-align:center;transition:all .25s cubic-bezier(.4,0,.2,1)}.aim-instructor-card:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:3px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .25s ease}.aim-instructor-card:hover{border-color:#667eea;box-shadow:0 8px 24px #0000001f;transform:translateY(-5px)}.aim-instructor-card:hover:before{transform:scaleX(1)}.aim-status-badge{border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.4px;padding:3px 8px;position:absolute;right:10px;text-transform:uppercase;top:10px}.aim-status-active{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.aim-status-inactive{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.aim-status-pending{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.aim-avatar{border:3px solid #f1f5f9;border-radius:50%;box-shadow:0 2px 8px #0000001a;display:block;height:68px;margin:4px auto 10px;object-fit:cover;transition:all .25s ease;width:68px}.aim-instructor-card:hover .aim-avatar{border-color:#667eea;transform:scale(1.05)}.aim-card-name{color:#1e293b;color:var(--text-primary,#1e293b);font-size:14px;font-weight:700;line-height:1.3;margin:0 0 3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.aim-card-title-prefix{color:#667eea}.aim-card-dept{color:#667eea;font-size:12px;font-weight:500;margin:0 0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.aim-chips-row{display:flex;flex-wrap:wrap;gap:5px;justify-content:center}.aim-chip{border-radius:20px;font-size:11px;font-weight:600;padding:3px 8px}.aim-chip-courses{background:#667eea1a;color:#667eea}.aim-chip-expertise{background:#10b9811a;color:#059669}.aim-recognized-list{display:flex;flex-direction:column;gap:8px}.aim-recognized-item{align-items:center;background:#fff;background:var(--card-bg,#fff);border:1px solid #e5e7eb;border-radius:10px;display:flex;gap:12px;padding:12px 16px;transition:all .2s ease}.aim-recognized-item:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a;transform:translateX(3px)}.aim-recognized-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:15px;font-weight:700;height:38px;justify-content:center;width:38px}.aim-recognized-info{flex:1 1;min-width:0}.aim-recognized-name{color:#1e293b;color:var(--text-primary,#1e293b);display:block;font-size:14px;font-weight:600}.aim-recognized-email{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:12px;margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aim-recognized-badge{background:#f59e0b1a;border-radius:20px;color:#d97706;flex-shrink:0;font-size:11px;font-weight:700;padding:3px 9px}.aim-modal-stats{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.aim-modal-stat{align-items:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;display:flex;gap:10px;padding:12px 14px}.aim-modal-stat-icon{flex-shrink:0;font-size:20px}.aim-modal-stat-info{display:flex;flex-direction:column;gap:1px}.aim-modal-stat-value{color:#1e293b;color:var(--text-primary,#1e293b);font-size:14px;font-weight:700;line-height:1.2}.aim-modal-stat-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:11px}@media (max-width:1024px){.aim-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.aim-page-body{padding:12px 12px 24px}.aim-cards-grid{gap:10px;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.aim-modal-stats{grid-template-columns:1fr}}@media (max-width:480px){.aim-stats-row{gap:8px;grid-template-columns:repeat(2,1fr)}.aim-cards-grid{gap:10px;grid-template-columns:1fr 1fr}.aim-actions-bar{flex-direction:column}.aim-search-input{width:100%}.aim-avatar{height:54px;width:54px}}.aim-scroll-container{box-sizing:border-box;height:calc(100vh - 120px);overflow-x:hidden;overflow-y:auto;padding:16px 16px 80px;width:100%}.aim-scroll-container::-webkit-scrollbar{width:6px}.aim-scroll-container::-webkit-scrollbar-track{background:#0000}.aim-scroll-container::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:10px}.aim-scroll-container::-webkit-scrollbar-thumb:hover{background:#667eea99}.student-management-container{box-sizing:border-box;padding:0 20px;width:100%}@media (max-width:768px){.student-management-container{padding:0 15px}}@media (max-width:480px){.student-management-container{padding:0 10px}}.student-cards-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:40px;padding:0 20px}@media (max-width:1024px){.student-cards-grid{gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (max-width:768px){.student-cards-grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));padding:0 15px}}@media (max-width:480px){.student-cards-grid{gap:12px;grid-template-columns:1fr;padding:0 10px}}.student-card-modern{background:#fff;border:2px solid #0000;border-radius:16px;box-shadow:0 4px 12px #00000014;cursor:pointer;overflow:hidden;padding:24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.student-card-modern:before{background:linear-gradient(90deg,#10b981,#059669);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .3s ease}.student-card-modern:hover{border-color:#10b981;box-shadow:0 12px 24px #00000026;transform:translateY(-8px)}.student-card-modern:hover:before{transform:scaleX(1)}.student-card-avatar{border:4px solid #f1f5f9;border-radius:50%;box-shadow:0 4px 12px #0000001a;height:100px;margin:0 auto 16px;object-fit:cover;transition:all .3s ease;width:100px}.student-card-modern:hover .student-card-avatar{border-color:#10b981;transform:scale(1.05)}.student-card-title{color:#1e293b;font-size:18px;font-weight:700;margin:0 0 8px;text-align:center}.student-card-email{color:#10b981;font-size:14px;font-weight:600;margin-bottom:12px;text-align:center;word-break:break-word}.student-card-courses{background:#f8fafc;border-radius:8px;color:#64748b;font-size:13px;margin-top:12px;padding:8px 12px;text-align:center}.student-progress-bar{background:#e2e8f0;border-radius:10px;height:6px;margin-top:12px;overflow:hidden;width:100%}.student-progress-fill{background:linear-gradient(90deg,#10b981,#059669);border-radius:10px;height:100%;transition:width .3s ease}@media (max-width:480px){.student-card-modern{padding:20px}.student-card-avatar{height:80px;width:80px}.student-card-title{font-size:16px}}.student-status-badge{border-radius:20px;box-shadow:0 2px 8px #00000026;font-size:11px;font-weight:700;letter-spacing:.5px;padding:6px 12px;position:absolute;right:16px;text-transform:uppercase;top:16px}.student-status-badge.active{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.student-status-badge.suspended{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.student-status-badge.deleted{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.progress-report-container{max-height:500px;overflow-y:auto}.progress-course-card{background:#f9fafb;border:2px solid #e2e8f0;border-radius:12px;margin-bottom:24px;padding:20px;transition:all .3s ease}.progress-course-card:hover{border-color:#10b981;box-shadow:0 4px 12px #10b9811a}.progress-course-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.progress-course-title{color:#1e293b;font-size:18px;font-weight:700;margin:0}.progress-status-badge{border-radius:16px;font-size:12px;font-weight:700;letter-spacing:.5px;padding:6px 14px;text-transform:uppercase}.progress-status-badge.completed{background:#10b981;color:#fff}.progress-status-badge.in-progress{background:#f59e0b;color:#fff}.progress-status-badge.not-started{background:#6b7280;color:#fff}.progress-stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin:16px 0}.progress-stat-item{background:#fff;border:2px solid #e2e8f0;border-radius:10px;padding:14px;text-align:center}.progress-stat-label{color:#64748b;display:block;font-size:12px;font-weight:600;margin-bottom:6px}.progress-stat-value{color:#1e293b;display:block;font-size:20px;font-weight:700}.progress-grade-box{background:#fff;border-left:4px solid #10b981;border-radius:10px;margin-top:12px;padding:14px 16px}.progress-grade-box strong{color:#1e293b;font-weight:700;margin-right:8px}.progress-enrollment-date{color:#64748b;font-size:13px;font-style:italic;margin-top:12px}@media (max-width:768px){.progress-stats-grid{gap:10px;grid-template-columns:1fr}.progress-course-header{align-items:flex-start;flex-direction:column;gap:10px}}@media (max-width:480px){.progress-course-card{padding:16px}.progress-course-title{font-size:16px}.progress-stat-value{font-size:18px}}.enrolled-courses-list{background:#f8fafc;border-radius:12px;margin-bottom:20px;padding:16px}.enrolled-course-item{background:#fff;border:2px solid #e2e8f0;border-radius:10px;margin-bottom:12px;padding:16px;transition:all .3s ease}.enrolled-course-item:last-child{margin-bottom:0}.enrolled-course-item:hover{border-color:#10b981;box-shadow:0 4px 12px #10b9811a;transform:translateX(4px)}.enrolled-course-item strong{color:#1e293b;display:block;font-size:15px;margin-bottom:8px}.enrolled-course-meta{color:#64748b;font-size:13px;margin:4px 0}@media (max-width:480px){.enrolled-course-item,.enrolled-courses-list{padding:12px}}.student-info-grid{grid-gap:12px;background:#f8fafc;border-radius:12px;display:grid;gap:12px;grid-template-columns:1fr;padding:16px}.student-info-item{background:#fff;border-left:4px solid #10b981;border-radius:8px;color:#475569;font-size:14px;padding:14px 16px}.student-info-item strong{color:#1e293b;font-weight:700;margin-right:8px}@media (max-width:480px){.student-info-item{font-size:13px;padding:12px 14px}}.student-empty-state{background:#fff;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin:40px 20px;padding:80px 40px;text-align:center}.student-empty-icon{font-size:80px;margin-bottom:24px;opacity:.5}.student-empty-title{color:#1e293b;font-size:24px;font-weight:700;margin:0 0 12px}.student-empty-text{color:#64748b;font-size:16px;margin:0}@media (max-width:768px){.student-empty-state{margin:30px 15px;padding:60px 30px}.student-empty-icon{font-size:60px}.student-empty-title{font-size:20px}.student-empty-text{font-size:14px}}@media (max-width:480px){.student-empty-state{margin:20px 10px;padding:40px 20px}.student-empty-icon{font-size:50px}.student-empty-title{font-size:18px}}.student-loading-container{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center;padding:80px 20px}.student-loading-spinner{animation:student-spin .8s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#10b981;height:60px;width:60px}@keyframes student-spin{to{transform:rotate(1turn)}}.student-loading-text{color:#64748b;font-size:16px;font-weight:500}@media (max-width:480px){.student-loading-container{padding:60px 20px}.student-loading-spinner{height:50px;width:50px}.student-loading-text{font-size:14px}}.student-section-header{align-items:center;background:#fff;border-bottom:2px solid #e2e8f0;border-radius:12px 12px 0 0;display:flex;gap:12px;margin:24px 20px 16px;padding:16px 20px;position:relative}.student-section-header h4{color:#1e293b;font-size:18px;font-weight:700;margin:0}.student-section-header:after{background:linear-gradient(90deg,#10b981,#059669);bottom:-2px;content:"";height:2px;left:20px;position:absolute;width:60px}@media (max-width:480px){.student-section-header{margin:20px 10px 12px;padding:12px 16px}.student-section-header h4{font-size:16px}}@media (max-width:1200px){.student-management-container{max-width:100%}}.student-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;gap:15px;margin-bottom:20px;padding-bottom:20px}.student-modal-avatar{border:3px solid #667eea;border-radius:50%;flex-shrink:0;height:60px;object-fit:cover;width:60px}.student-modal-info h3{font-size:20px;font-weight:600;margin:0}.student-modal-info p{color:#6b7280;font-size:14px;margin:5px 0 0}.action-buttons-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:25px}.action-btn-gradient{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 4px #0000000d;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;justify-content:center;outline:none;padding:14px 20px;transition:all .3s ease}.action-btn-gradient:hover{border-color:currentColor;transform:translateY(-2px)}.action-btn-gradient:active{transform:translateY(0)}.action-btn-gradient.view-progress{box-shadow:0 2px 8px #667eea33;color:#667eea}.action-btn-gradient.view-progress:hover{background:#f5f7ff;box-shadow:0 4px 12px #667eea40}.action-btn-gradient.send-message{box-shadow:0 2px 8px #3b82f633;color:#3b82f6}.action-btn-gradient.send-message:hover{background:#eff6ff;box-shadow:0 4px 12px #3b82f640}.action-btn-gradient.delete-student{box-shadow:0 2px 8px #ef444433;color:#ef4444}.action-btn-gradient.delete-student:hover{background:#fef2f2;box-shadow:0 4px 12px #ef444440}.student-stats-cards-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:25px}.stat-card-gradient{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:10px;transition:transform .3s ease,box-shadow .3s ease}.stat-card-gradient:hover{transform:translateY(-3px)}.stat-card-gradient.status{border-color:#667eea;box-shadow:0 4px 12px #667eea26}.stat-card-gradient.enrolled{border-color:#667eea;box-shadow:0 4px 12px #f5576c26}.stat-card-gradient.completed{border-color:#667eea;box-shadow:0 4px 12px #4facfe26}.stat-card-gradient.progress{border-color:#667eea;box-shadow:0 4px 12px #43e97b26}.stat-card-label{color:#6b7280;font-size:13px;font-weight:500;margin-bottom:8px}.stat-card-value{font-size:20px;font-weight:700;line-height:1.2;text-transform:capitalize}.stat-card-gradient.status .stat-card-value{color:#667eea}.stat-card-gradient.enrolled .stat-card-value{color:#f5576c}.stat-card-gradient.completed .stat-card-value{color:#4facfe}.stat-card-gradient.progress .stat-card-value{color:#43e97b}.student-status-badge.inline{display:inline-block;position:static}.student-card-modern{align-items:center;display:flex;flex-direction:column;text-align:center}.student-card-modern:hover .student-completed-chip{background:#10b9812e}.search-container{align-items:center;display:flex;gap:12px}.student-results-count{color:#6b7280;font-size:13px;font-weight:500;margin:0 20px 16px}.student-progress-label-row{color:#6b7280;display:flex;font-size:11px;font-weight:600;justify-content:space-between;margin-bottom:4px;width:100%}@media (max-width:360px){.student-status-badge{font-size:9px;padding:4px 8px}}.asm-page-body{box-sizing:border-box;padding:16px 16px 32px;width:100%}.asm-stats-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.asm-stat-card{align-items:center;background:#fff;background:var(--card-bg,#fff);border:1px solid #00000012;border-radius:12px;box-shadow:0 2px 8px #0000000d;display:flex;gap:12px;padding:14px 16px;transition:transform .2s ease,box-shadow .2s ease}.asm-stat-card:hover{box-shadow:0 4px 14px #00000017;transform:translateY(-2px)}.asm-stat-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:24px;height:44px;justify-content:center;width:44px}.asm-stat-total .asm-stat-icon{background:#3b82f61a}.asm-stat-active .asm-stat-icon{background:#10b9811a}.asm-stat-suspended .asm-stat-icon{background:#ef44441a}.asm-stat-enrollments .asm-stat-icon{background:#f59e0b1a}.asm-stat-info{display:flex;flex-direction:column;gap:1px}.asm-stat-number{font-size:22px;font-weight:700;line-height:1}.asm-stat-total .asm-stat-number{color:#3b82f6}.asm-stat-active .asm-stat-number{color:#10b981}.asm-stat-suspended .asm-stat-number{color:#ef4444}.asm-stat-enrollments .asm-stat-number{color:#f59e0b}.asm-stat-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:12px;font-weight:600}.asm-search-row{align-items:center;display:flex;gap:10px;margin-bottom:10px}.asm-search-input{background:#fff;background:var(--input-bg,#fff);border:1px solid #e5e7eb;border-radius:8px;color:#111827;color:var(--text-primary,#111827);flex:1 1;font-size:14px;min-width:0;outline:none;padding:9px 14px;transition:border-color .2s}.asm-search-input:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811a}.asm-filter-select{background:#fff;background:var(--input-bg,#fff);border:1px solid #e5e7eb;border-radius:8px;color:#111827;color:var(--text-primary,#111827);cursor:pointer;flex-shrink:0;font-size:13px;outline:none;padding:9px 12px;white-space:nowrap}.asm-filter-select:focus{border-color:#10b981}.asm-results-count{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:12px;margin-bottom:12px}.asm-results-count strong{color:#111827;color:var(--text-primary,#111827)}.asm-cards-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));padding-bottom:16px}.asm-student-card{align-items:center;background:#fff;background:var(--card-bg,#fff);border:2px solid #0000;border-radius:14px;box-shadow:0 2px 10px #00000012;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;padding:18px 16px 16px;position:relative;text-align:center;transition:all .25s cubic-bezier(.4,0,.2,1)}.asm-student-card:before{background:linear-gradient(90deg,#10b981,#059669);content:"";height:3px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .25s ease}.asm-student-card:hover{border-color:#10b981;box-shadow:0 8px 24px #0000001f;transform:translateY(-5px)}.asm-student-card:hover:before{transform:scaleX(1)}.asm-status-badge{border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.4px;padding:3px 9px;position:absolute;right:12px;text-transform:uppercase;top:12px}.asm-status-active{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.asm-status-suspended{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.asm-status-deleted{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.asm-avatar{border:3px solid #f1f5f9;border-radius:50%;box-shadow:0 2px 8px #0000001a;display:block;height:72px;margin:4px auto 12px;object-fit:cover;transition:all .25s ease;width:72px}.asm-student-card:hover .asm-avatar{border-color:#10b981;transform:scale(1.05)}.asm-card-name{color:#1e293b;color:var(--text-primary,#1e293b);font-size:15px;font-weight:700;line-height:1.3;margin:0 0 4px}.asm-card-email,.asm-card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.asm-card-email{color:#10b981;font-size:12px;font-weight:500;margin:0 0 10px}.asm-chips-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:10px}.asm-chip{border-radius:20px;font-size:11px;font-weight:600;padding:3px 9px}.asm-chip-courses{background:#6366f11a;color:#6366f1}.asm-chip-completed{background:#10b9811a;color:#059669}.asm-progress-section{margin-top:4px;width:100%}.asm-progress-label{color:#6b7280;color:var(--text-secondary,#6b7280);display:flex;font-size:10px;font-weight:600;justify-content:space-between;margin-bottom:4px}.asm-progress-track{background:#e2e8f0;border-radius:10px;height:5px;overflow:hidden;width:100%}.asm-progress-fill{background:linear-gradient(90deg,#10b981,#059669);border-radius:10px;height:100%;transition:width .3s ease}@media (max-width:1024px){.asm-stats-row{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.asm-page-body{padding:12px 12px 24px}.asm-cards-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media (max-width:480px){.asm-stats-row{gap:8px;grid-template-columns:repeat(2,1fr)}.asm-cards-grid{gap:10px;grid-template-columns:1fr 1fr}.asm-search-row{flex-direction:column}.asm-filter-select{width:100%}.asm-avatar{height:56px;width:56px}.asm-card-name{font-size:13px}}.author-info-card{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 8px 24px #667eea40;display:flex;gap:20px;margin-bottom:24px;padding:24px;width:90%}@media (max-width:768px){.author-info-card{gap:16px;padding:20px}}@media (max-width:480px){.author-info-card{flex-direction:column;padding:16px;text-align:center}}.author-avatar{border:4px solid #fff;border-radius:50%;box-shadow:0 4px 12px #00000026;flex-shrink:0;height:80px;object-fit:cover;width:80px}@media (max-width:768px){.author-avatar{height:70px;width:70px}}@media (max-width:480px){.author-avatar{height:60px;width:60px}}.author-details{flex:1 1;min-width:0}.author-name{color:#fff;font-size:1.5rem;font-weight:700;margin:0 0 6px}@media (max-width:768px){.author-name{font-size:1.3rem}}@media (max-width:480px){.author-name{font-size:1.2rem}}.author-role{color:#ffffffe6;font-size:1rem;font-weight:500;margin:0}@media (max-width:480px){.author-role{font-size:.95rem}}.author-badge{align-items:center;background:#fff;border-radius:24px;display:flex;flex-shrink:0;gap:8px;padding:10px 20px}@media (max-width:480px){.author-badge{padding:8px 16px}}.badge-icon{font-size:1.2rem}.badge-text{color:#667eea;font-size:.95rem;font-weight:600}@media (max-width:480px){.badge-icon{font-size:1.1rem}.badge-text{font-size:.9rem}}.tips-section{background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid #f59e0b;border-radius:12px;display:flex;gap:16px;margin-bottom:24px;padding:20px;width:90%}@media (max-width:768px){.tips-section{gap:12px;padding:16px}}@media (max-width:480px){.tips-section{align-items:flex-start;flex-direction:column;padding:14px}}.tip-icon{flex-shrink:0;font-size:2rem}@media (max-width:480px){.tip-icon{font-size:1.8rem}}.tips-content{flex:1 1}.tips-title{color:#92400e;font-size:1rem;font-weight:600;margin:0 0 10px}@media (max-width:480px){.tips-title{font-size:.95rem}}.tips-list{color:#78350f;margin:0;padding-left:20px}.tips-list li{font-size:.9rem;margin-bottom:6px}.tips-list li:last-child{margin-bottom:0}@media (max-width:480px){.tips-list li{font-size:.85rem}}.quick-stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:24px;width:90%}@media (max-width:768px){.quick-stats-grid{gap:12px;grid-template-columns:repeat(3,1fr)}}@media (max-width:480px){.quick-stats-grid{gap:10px;grid-template-columns:1fr}}.note-stat-box{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;gap:12px;padding:16px;transition:all .3s ease}.note-stat-box:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}@media (max-width:768px){.note-stat-box{gap:10px;padding:14px}}@media (max-width:480px){.note-stat-box{padding:12px}}.note-stat-icon{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;display:flex;flex-shrink:0;font-size:1.8rem;height:50px;justify-content:center;width:50px}@media (max-width:768px){.note-stat-icon{font-size:1.6rem;height:45px;width:45px}}@media (max-width:480px){.note-stat-icon{font-size:1.5rem;height:40px;width:40px}}.note-stat-info{flex:1 1}.note-stat-label{color:#718096;font-size:.8rem;letter-spacing:.5px;margin:0 0 4px;text-transform:uppercase}.note-stat-value{color:#2d3748;font-size:1.4rem;font-weight:700;margin:0}@media (max-width:768px){.note-stat-label{font-size:.75rem}.note-stat-value{font-size:1.2rem}}@media (max-width:480px){.note-stat-label{font-size:.7rem}.note-stat-value{font-size:1.1rem}}.full-card{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;margin-bottom:24px;padding:28px;width:90%}@media (max-width:768px){.full-card{padding:24px}}@media (max-width:480px){.full-card{padding:20px}}.card-header-section{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;gap:12px;margin-bottom:24px;padding-bottom:16px}.section-icon{font-size:1.8rem}.card-header-section h4{color:#2d3748;font-size:1.3rem;font-weight:600;margin:0}@media (max-width:768px){.section-icon{font-size:1.6rem}.card-header-section h4{font-size:1.2rem}}@media (max-width:480px){.section-icon{font-size:1.5rem}.card-header-section h4{font-size:1.1rem}}.form-group-write{margin-bottom:24px}.input-label{align-items:center;color:#2d3748;display:flex;font-size:1rem;font-weight:600;gap:8px;margin-bottom:10px}.label-icon{font-size:1.1rem}@media (max-width:480px){.input-label{font-size:.95rem}.label-icon{font-size:1rem}}.subject-input-modern{border:2px solid #e5e7eb;border-radius:10px;font-family:inherit;font-size:1rem;padding:14px 18px;transition:all .3s ease;width:100%}.subject-input-modern:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;outline:none}@media (max-width:480px){.subject-input-modern{font-size:.95rem;padding:12px 16px}}.advice-textarea-modern{border:2px solid #e5e7eb;border-radius:10px;font-family:inherit;font-size:.95rem;line-height:1.7;min-height:320px;padding:16px 18px;resize:vertical;transition:all .3s ease;width:100%}.advice-textarea-modern:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;outline:none}@media (max-width:768px){.advice-textarea-modern{min-height:280px}}@media (max-width:480px){.advice-textarea-modern{font-size:.9rem;min-height:240px;padding:14px 16px}}.char-counter{display:flex;justify-content:flex-end;margin-top:8px}.char-counter span{color:#718096;font-size:.85rem;font-weight:500}.char-counter span.warning{color:#f59e0b;font-weight:600}@media (max-width:480px){.char-counter span{font-size:.8rem}}.char-progress-container{display:flex;flex-direction:column;gap:8px;margin-top:12px}.char-progress-bar{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden;width:100%}.char-progress-fill{border-radius:4px;height:100%;transition:all .3s ease}.char-count-text{color:#718096;font-size:.85rem;font-weight:500;text-align:right}.char-count-text.danger{color:#ef4444;font-weight:600}@media (max-width:480px){.char-count-text{font-size:.8rem}}.send-button-modern{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:12px;box-shadow:0 4px 12px #10b98140;color:#fff;cursor:pointer;display:flex;font-size:1.05rem;font-weight:600;gap:12px;justify-content:center;padding:16px 24px;transition:all .3s ease;width:100%}.send-button-modern:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98159;transform:translateY(-2px)}.send-button-modern:active:not(:disabled){transform:translateY(0)}.send-button-modern:disabled{cursor:not-allowed;opacity:.6;transform:none}@media (max-width:480px){.send-button-modern{font-size:1rem;padding:14px 20px}}.button-arrow,.button-icon{font-size:1.2rem}.button-arrow{transition:transform .3s ease}.send-button-modern:hover:not(:disabled) .button-arrow{transform:translateX(4px)}.button-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:18px;width:18px}.student-my-courses{padding:0 20px;width:100%}@media (max-width:768px){.student-my-courses{padding:0 15px}}@media (max-width:480px){.student-my-courses{padding:0 10px}}.student-explore{padding:0 20px;width:100%}@media (max-width:768px){.student-explore{padding:0 15px}}@media (max-width:480px){.student-explore{padding:0 10px}}.student-progress{max-height:calc(100vh - 200px);overflow-y:auto;padding:0 20px;width:100%}@media (max-width:768px){.student-progress{padding:0 15px}}@media (max-width:480px){.student-progress{padding:0 10px}}.course-progress-bar{background:#e9ecef;border-radius:4px;height:8px;margin-top:10px;overflow:hidden;width:100%}@media (max-width:768px){.course-progress-bar{height:7px;margin-top:8px}}@media (max-width:480px){.course-progress-bar{height:6px;margin-top:6px}}.course-progress-fill{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;height:100%;transition:width .3s ease}.progress-chart{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-top:20px;padding:20px}.progress-chart h3{color:#2d3748;font-size:1.25rem;font-weight:600;margin-bottom:15px;margin-top:0}@media (max-width:768px){.progress-chart{margin-top:15px;padding:15px}.progress-chart h3{font-size:1.1rem;margin-bottom:12px}}@media (max-width:480px){.progress-chart{margin-top:12px;padding:12px}.progress-chart h3{font-size:1rem;margin-bottom:10px}}.achievement-badge{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:20px;color:#fff;display:inline-flex;font-size:.85rem;font-weight:600;gap:8px;margin:5px;padding:8px 12px}@media (max-width:768px){.achievement-badge{font-size:.8rem;padding:6px 10px}}@media (max-width:480px){.achievement-badge{font-size:.75rem;padding:5px 8px}}.learning-path-indicator{align-items:center;background:#f0f4ff;border-left:4px solid #667eea;border-radius:8px;display:flex;gap:10px;margin-bottom:15px;padding:12px}.learning-path-indicator .path-icon{font-size:1.5rem}.learning-path-indicator .path-text{color:#2d3748;flex:1 1;font-size:.9rem}@media (max-width:768px){.learning-path-indicator{gap:8px;padding:10px}.learning-path-indicator .path-icon{font-size:1.3rem}.learning-path-indicator .path-text{font-size:.85rem}}@media (max-width:480px){.learning-path-indicator{gap:6px;padding:8px}.learning-path-indicator .path-icon{font-size:1.2rem}.learning-path-indicator .path-text{font-size:.8rem}}.no-content-message{color:#6b7280;padding:40px 20px}.content-item-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px;transition:all .3s ease}.content-item-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.content-item-header{align-items:flex-start;display:flex;gap:20px;justify-content:space-between;margin-bottom:15px}@media (max-width:768px){.content-item-header{flex-direction:column}}.content-item-title{align-items:flex-start;display:flex;flex:1 1;gap:12px}.content-icon{flex-shrink:0;font-size:24px}.content-item-title h4{color:#333;font-size:18px;margin:0 0 5px}.content-meta{color:#666;font-size:14px;margin:0}.content-item-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}@media (max-width:768px){.content-item-actions{justify-content:flex-start;width:100%}}.status-badge{border-radius:20px;font-size:13px;padding:6px 12px;white-space:nowrap}.status-badge.completed{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.status-badge.pending{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.status-badge.in-progress{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.status-badge.not-started{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.grade-badge{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-radius:20px;color:#fff;font-size:13px;font-weight:600;padding:6px 12px}.content-item-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}@media (max-width:768px){.content-item-buttons{width:100%}.content-item-buttons button{flex:1 1}}.assessment-form{padding:0}.assessment-info{background:#f3f4f6;border-radius:8px;color:#374151;margin-bottom:20px;padding:15px}.questions-container{display:flex;flex-direction:column;gap:20px;margin-bottom:20px}.question-card{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;padding:20px}.question-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}@media (max-width:768px){.question-header{align-items:flex-start;flex-direction:column;gap:10px}}.question-points{background:#10b981;color:#fff}.question-duration,.question-points{border-radius:20px;font-size:13px;font-weight:500;padding:6px 12px}.question-duration{background:#acc92b;color:#2d2c2c}.answer-options{display:flex;flex-direction:column;gap:12px}.option-label{align-items:flex-start;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .2s ease}.option-label:hover{background:#f8f9ff;border-color:#667eea}.option-label input[type=radio]{cursor:pointer;flex-shrink:0;height:18px;margin-top:3px;width:18px}.answer-textarea{font-size:15px;transition:border-color .2s ease;width:90%}.submission-form{padding:0}.form-group{margin-bottom:20px}.submission-input{border:2px solid #e5e7eb;border-radius:8px;font-size:15px;padding:12px;transition:border-color .2s ease;width:100%}.submission-input:focus{border-color:#667eea;outline:none}.submission-textarea{border:2px solid #e5e7eb;border-radius:8px;font-family:Courier New,monospace;font-size:15px;padding:12px;resize:vertical;transition:border-color .2s ease;width:100%}.submission-textarea:focus{border-color:#667eea;outline:none}.modal-actions{border-top:1px solid #e5e7eb;padding-top:20px}@media (max-width:768px){.modal-actions{flex-direction:column}}.btn-cancel{border-radius:8px;font-size:15px;padding:10px 24px;transition:all .2s ease}@media (max-width:768px){.btn-cancel{width:100%}}.btn-submit{border-radius:8px;font-size:15px;padding:10px 24px;transition:all .3s ease}.btn-submit:hover:not(:disabled){box-shadow:0 5px 15px #10b98166;transform:translateY(-2px)}.btn-submit:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.btn-submit{width:100%}}.content-link{color:#667eea;font-weight:500;transition:color .2s ease}.content-link:hover{color:#764ba2}.sidebar-tab-button{font-weight:500}.sidebar-tab-button:hover{transform:translateX(-2px)}.sidebar-tab-button .tab-icon{font-size:18px}.sidebar-tab-button .tab-label{flex:1 1}@media (max-width:768px){.sidebar-tab-button{flex-shrink:0;min-width:120px}}.sidebar-tab-button{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:14px;gap:12px;padding:12px 16px;text-align:left;transition:all .2s ease}.sidebar-tab-button:hover{background:#f8f9ff;border-color:#667eea}.sidebar-tab-button.active-tab{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;color:#fff}.tab-icon{font-size:18px}.tab-label{flex:1 1;font-weight:500}.text-answer-section{margin-top:12px;width:100%}.answer-textarea{border:2px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:14px;line-height:1.6;padding:12px;resize:vertical;transition:border-color .2s;width:100%}.answer-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.answer-textarea::placeholder{color:#9ca3af}.character-count{color:#6b7280;font-size:12px;margin-top:4px;padding-right:4px;text-align:right}.answer-textarea[rows="15"]{background-color:#f9fafb;font-family:Courier New,monospace;tab-size:4}.results-summary{display:flex;justify-content:center;margin-bottom:30px}.results-score-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 4px 6px #0000001a;color:#fff;min-width:300px;padding:30px;text-align:center}.results-score-card h3{font-size:20px;margin:0 0 15px;opacity:.9}.results-score{font-size:26px;font-weight:700;margin:10px 0}.results-percentage{font-size:24px;font-weight:600;opacity:.95}.results-pending-note{background:#fff3;border-radius:8px;font-size:14px;margin-top:15px;padding:10px}.results-questions{margin-top:20px}.results-section-title{border-bottom:2px solid #e5e7eb;color:#111827;font-size:20px;font-weight:600;margin-bottom:20px;padding-bottom:10px}.results-question-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;margin-bottom:20px;padding:20px;transition:all .2s}.results-question-card.correct{background:#f0fdf4;border-color:#10b981}.results-question-card.incorrect{background:#fef2f2;border-color:#ef4444}.results-question-card.pending-grade{background:#fffbeb;border-color:#f59e0b}.results-question-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:15px}.results-question-number{color:#111827;font-size:16px;font-weight:600}.results-question-points{background:#f3f4f6;color:#374151;font-weight:500}.results-question-points,.results-status-badge{border-radius:12px;font-size:14px;padding:4px 12px}.results-status-badge{font-weight:600;margin-left:auto}.results-status-badge.correct{background:#10b981;color:#fff}.results-status-badge.incorrect{background:#ef4444;color:#fff}.results-question-text{color:#111827;font-size:16px;font-weight:500;line-height:1.6;margin:15px 0}.results-question-type{color:#6b7280;font-size:13px;margin-bottom:15px}.results-options{margin:15px 0}.results-option{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:8px;display:flex;gap:10px;margin-bottom:8px;padding:12px;transition:all .2s}.results-option.correct-option{background:#f0fdf4;border-color:#10b981}.results-option.wrong-option{background:#fef2f2;border-color:#ef4444}.results-option.student-correct{background:#d1fae5;border-color:#10b981}.results-option .option-letter{color:#374151;font-weight:700;min-width:25px}.results-option .option-text{color:#111827;flex:1 1}.results-option .badge{background:#3b82f6;border-radius:12px;color:#fff;font-size:12px;font-weight:600;padding:4px 10px}.results-option .badge.correct{background:#10b981}.results-answers{margin:15px 0}.results-answer-box{border-radius:8px;margin-bottom:12px;padding:15px}.results-answer-box.student-answer{background:#eff6ff;border:2px solid #3b82f6}.results-answer-box.correct-answer{background:#f0fdf4;border:2px solid #10b981}.results-answer-box.pending-answer{background:#fffbeb;border:2px solid #f59e0b}.results-answer-box strong{color:#111827;display:block;font-size:14px;margin-bottom:8px}.results-answer-box p{color:#374151;line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.results-explanation{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:8px;margin-top:15px;padding:15px}.results-explanation strong{color:#92400e;display:block;font-size:14px;margin-bottom:8px}.results-explanation p{color:#78350f;line-height:1.6;margin:0}@media (max-width:768px){.results-score-card{min-width:100%}.results-score{font-size:36px}.results-percentage{font-size:20px}.results-question-header{align-items:flex-start;flex-direction:column}.results-status-badge{margin-left:0}}.my-submissions-section{border-top:3px solid #e5e7eb;margin-top:30px;padding-top:30px}.my-submissions-section h4{align-items:center;color:#111827;display:flex;font-size:20px;font-weight:700;gap:10px;margin-bottom:20px}.submission-history-card{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;margin-bottom:20px;padding:20px;transition:all .2s}.submission-history-card:hover{border-color:#667eea;box-shadow:0 4px 6px #667eea1a}.submission-history-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:12px}.submission-number{color:#111827;font-size:16px;font-weight:700}.submission-status-badge{border-radius:12px;font-size:13px;font-weight:600;padding:6px 14px}.submission-status-badge.graded{background:#10b981;color:#fff}.submission-status-badge.submitted{background:#f59e0b;color:#fff}.submission-status-badge.in-progress,.submission-status-badge.in_progress{background:#3b82f6;color:#fff}.submission-status-badge.under_review{background:#8b5cf6;color:#fff}.submission-status-badge.revision_requested{background:#f97316;color:#fff}.submission-history-meta{margin-bottom:15px}.submission-history-meta p{color:#374151;font-size:14px;margin:8px 0}.submission-history-meta strong{color:#111827;font-weight:600}.grade-display-inline{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;display:inline-block;font-size:13px;font-weight:700;margin-left:8px;padding:4px 10px}.percentage-display{color:#6b7280;font-weight:600;margin-left:8px}.pending-grading-note{color:#f59e0b;font-style:italic;font-weight:600}.submission-code-preview{margin:15px 0}.submission-code-preview strong{color:#374151;display:block;font-size:14px;margin-bottom:8px}.code-preview-small{background:#1f2937;border-radius:8px;color:#f3f4f6;font-family:Courier New,monospace;font-size:13px;line-height:1.5;max-height:150px;overflow-x:auto;overflow-y:auto;padding:12px}.attachments-preview{background:#fff;border-radius:6px;color:#374151;font-size:14px;margin:12px 0;padding:10px 12px}.attachments-preview strong{color:#111827}.questions-breakdown{background:#fff;border-radius:8px;margin:20px 0;padding:15px}.questions-breakdown>strong{color:#111827;display:block;font-size:15px;margin-bottom:12px}.breakdown-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr;margin-top:12px}@media (max-width:768px){.breakdown-grid{grid-template-columns:1fr}}.breakdown-item{background:#f9fafb;border:2px solid #e5e7eb;border-radius:8px;padding:12px;transition:all .2s}.breakdown-item:hover{border-color:#667eea}.breakdown-header{border-bottom:1px solid #e5e7eb;margin-bottom:8px;padding-bottom:8px}.breakdown-header span:first-child{color:#111827;font-size:14px;font-weight:700}.breakdown-status{font-size:16px;height:24px;width:24px}.breakdown-status.correct{background:#10b981;color:#fff}.breakdown-status.incorrect{background:#ef4444;color:#fff}.breakdown-status.pending{background:#f59e0b;color:#fff}.breakdown-points{color:#6b7280;font-size:13px;font-weight:600;margin-bottom:10px}.breakdown-answers{margin-top:10px}.answer-label{color:#6b7280;display:block;font-size:11px;margin-bottom:2px;text-transform:uppercase}.answer-value{color:#111827;display:block;line-height:1.4;word-break:break-word}.feedback-box{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:6px;margin-top:15px;padding:12px}.feedback-box strong{color:#92400e;display:block;font-size:14px;margin-bottom:6px}.feedback-box p{color:#78350f;font-size:14px;line-height:1.6;margin:0}.capstone-details-preview{margin:15px 0}.detail-item{background:#fff;border-left:3px solid #667eea;border-radius:6px;margin:12px 0;padding:10px 12px}.detail-item strong{color:#374151;display:block;font-size:13px;margin-bottom:6px}.detail-item p{color:#111827;font-size:14px;line-height:1.6;margin:0}.link-preview{color:#3b82f6;font-size:14px;text-decoration:none;word-break:break-all}.link-preview:hover{text-decoration:underline}.graded-info{border-top:1px solid #e5e7eb;margin-top:15px;padding-top:12px}.graded-info p{color:#6b7280;font-size:13px;margin:4px 0}.graded-info strong{color:#374151}@media (max-width:768px){.submission-history-card{padding:15px}.submission-history-header{align-items:flex-start;flex-direction:column;gap:10px}.grade-display-inline{font-size:12px}}.essay-file-upload-section{background:#f8f9fa;border:2px dashed #cbd5e0}.file-upload-label{color:#2d3748;font-weight:500}.file-upload-button{background:linear-gradient(135deg,#667eea,#764ba2);font-size:14px;transition:all .3s ease}.file-upload-button:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.file-upload-hint{color:#718096}.uploaded-file-item{border:1px solid #e2e8f0;font-size:14px;padding:10px}.file-name{color:#2d3748}.file-size{color:#718096}.remove-file-btn{background:#fc8181;color:#fff;transition:all .2s ease}.remove-file-btn:hover{background:#f56565}.essay-file-upload-section{background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;margin-top:15px;padding:15px;transition:all .3s ease}.essay-file-upload-section:hover{background:#f3f4f6;border-color:#667eea}.file-upload-header{display:flex;flex-direction:column;gap:8px}.file-upload-label{align-items:center;color:#374151;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:10px}.file-input-hidden{display:none}.file-upload-button{background:#667eea;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s}.file-upload-button:hover{background:#5568d3;transform:translateY(-1px)}.file-upload-hint{color:#6b7280;font-size:12px;font-style:italic}.uploaded-files-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.uploaded-file-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;gap:10px;padding:10px 12px;transition:all .2s}.uploaded-file-item:hover{border-color:#667eea;box-shadow:0 2px 4px #667eea1a}.file-icon{font-size:18px}.file-name{color:#374151;flex:1 1;font-size:14px;word-break:break-word}.file-size{color:#6b7280;font-size:12px}.remove-file-btn{background:#fee2e2;border:none;border-radius:4px;color:#dc2626;cursor:pointer;font-size:14px;font-weight:600;padding:4px 8px;transition:all .2s}.remove-file-btn:hover{background:#fecaca;transform:scale(1.1)}.student-announcements-section{margin:0 auto;max-width:900px}.announcements-list{gap:16px}.announcement-card{background:#fff;border:1px solid #e0e0e0;cursor:pointer;padding:20px;transition:all .2s}.announcement-card.unread{background:#f8fbff;border-left:4px solid #2196f3}.announcement-card.read{opacity:.85}.announcement-card:hover{box-shadow:0 2px 8px #0000001a}.announcement-header{align-items:flex-start;margin-bottom:12px}.announcement-title-row{align-items:center;display:flex;flex:1 1;gap:12px}.announcement-title-row h4{color:#333;font-size:18px;margin:0}.student-unread-badge{background:#2196f3;border-radius:12px;color:#fff;font-size:11px;font-weight:700;padding:12px 16px}.priority-badge.low{background:#e3f2fd;color:#1976d2}.priority-badge.medium{background:#fff3e0;color:#f57c00}.priority-badge.high{background:#ffe0b2;color:#e65100}.priority-badge.urgent{background:#ffebee;color:#c62828}.announcement-body{color:#555;margin:12px 0;white-space:pre-wrap}.announcement-footer{border-top:1px solid #f0f0f0;margin-top:16px}.announcement-meta{display:flex;flex-wrap:wrap;gap:12px}.course-badge,.instructor-name{color:#666;font-size:13px}.announcement-date{color:#999;font-size:12px}.read-status{border-top:1px solid #f0f0f0;color:#4caf50;font-size:12px;margin-top:12px;padding-top:12px}.no-announcements{color:#999;padding:60px 20px}.no-announcements p{font-size:18px;margin-bottom:8px}.loading-state{color:#666;padding:40px;text-align:center}.iot-practical-section{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #0ea5e9;border-radius:12px;margin:20px 0;padding:20px}.iot-session-info h5{color:#0c4a6e;margin:0 0 10px}.iot-instructions{color:#0c4a6e;font-size:1.05em;margin:10px 0}.iot-requirements-box{background:#fff;border-left:4px solid #0ea5e9;border-radius:6px}.iot-requirements-list{margin:10px 0 0}.iot-requirements-list li{border-bottom:1px solid #e0f2fe;padding:8px 0}.iot-device-input{margin:15px 0}.iot-device-input label{color:#0c4a6e;display:block;font-weight:600;margin-bottom:8px}.device-id-input{border:2px solid #bae6fd;border-radius:8px;font-family:Courier New,monospace;font-size:1em;padding:12px;transition:border-color .3s;width:90%}.device-id-input:focus{border-color:#0ea5e9;box-shadow:0 0 0 3px #0ea5e91a;outline:none}.input-hint{color:#64748b;display:block;font-size:.85em;margin-top:6px}.iot-session-created{align-items:center;background:#dcfce7;border:2px solid #22c55e;border-radius:8px;display:flex;gap:15px;margin:15px 0;padding:15px}.iot-session-created .status-icon{font-size:2em}.session-id-display{background:#fff;border-radius:4px;color:#166534;font-family:Courier New,monospace;font-size:.8rem;margin:8px 0;padding:6px 10px}.iot-hint{color:#15803d;font-size:.9em;margin:5px 0 0}.btn-create-session{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1em;font-weight:600;margin:10px 0;padding:12px 24px;transition:transform .2s;width:100%}.btn-create-session:hover:not(:disabled){box-shadow:0 4px 12px #3b82f64d;transform:translateY(-2px)}.btn-create-session:disabled{background:#94a3b8;cursor:not-allowed;transform:none}.iot-notes-section{margin-top:20px}.iot-notes-section label{color:#0c4a6e;display:block;font-weight:600;margin-bottom:8px}.iot-requirements-list-preview{display:flex;flex-direction:column;gap:12px;margin-top:10px}.iot-requirement-preview-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:12px}.requirement-preview-header{display:flex;gap:8px;margin-bottom:8px}.requirement-id{background:#2563eb;font-weight:600}.requirement-category,.requirement-id{border-radius:4px;color:#fff;font-size:12px;padding:2px 8px}.requirement-category{background:#10b981}.requirement-preview-title{color:#1f2937;font-weight:600;margin-bottom:6px}.requirement-preview-desc{color:#4b5563;font-size:14px;margin-bottom:8px}.requirement-preview-condition{background:#f9fafb;border-radius:4px;color:#6b7280;font-size:13px;padding:8px}.iot-requirements-display{background:#f8f9fa;border-radius:8px;margin-bottom:20px;padding:20px}.iot-requirements-display h6{color:#1f2937;font-size:16px;margin:0 0 15px}.iot-requirements-grid{display:flex;flex-direction:column;gap:16px}.iot-requirement-card{background:#fff;border:2px solid #e5e7eb;border-radius:10px;padding:16px}.requirement-header{align-items:center;display:flex;gap:10px;margin-bottom:12px}.requirement-id-badge{background:#2563eb;font-weight:600}.requirement-category-badge,.requirement-id-badge{border-radius:6px;color:#fff;font-size:13px;padding:4px 10px}.requirement-category-badge{background:#10b981}.requirement-title{color:#1f2937;font-size:15px}.requirement-description{color:#4b5563;font-size:14px;margin-bottom:12px}.requirement-details{background:#f9fafb;border-radius:6px;margin-bottom:10px;padding:12px}.requirement-detail-item{color:#374151;font-size:13px;margin-bottom:6px}.requirement-detail-item strong{color:#1f2937;font-weight:600}.requirement-validation-rules{background:#eff6ff;border-radius:4px;color:#1e40af;font-size:13px;margin-top:8px;padding:8px}.requirement-rubric{background:#f3f4f6;border-radius:6px;margin-top:10px;padding:10px}.rubric-item{border-radius:4px;font-size:13px;margin-bottom:6px;padding:6px}.rubric-item.full{background:#d1fae5;color:#065f46}.rubric-item.partial{background:#fef3c7;color:#92400e}.rubric-item.fail{background:#fee2e2;color:#991b1b}.iot-requirements-results{background:#f8f9fa;border-radius:8px;margin-top:12px;padding:16px;width:90%}.iot-requirements-results-grid{display:flex;flex-direction:column;gap:10px;margin-top:10px}.iot-requirement-result-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px}.requirement-result-header{align-items:center;display:flex;gap:10px;margin-bottom:8px}.requirement-result-condition{background:#f9fafb;border-radius:4px;color:#4b5563;font-size:13px;padding:8px}.btn-validate-session{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-top:10px;padding:10px 20px;transition:transform .2s,box-shadow .2s}.btn-validate-session:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.btn-validate-session:disabled{cursor:not-allowed;opacity:.5}.special-grading-results{background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;margin-top:20px;padding:20px}.special-grading-header{margin-bottom:15px}.special-grading-badge{border-radius:20px;display:inline-block;font-size:.9em;font-weight:600;padding:6px 14px}.special-grading-badge.iot{background:linear-gradient(135deg,#06b6d4,#0891b2);color:#fff}.special-grading-badge.video{background:linear-gradient(135deg,#ec4899,#db2777);color:#fff}.special-grading-badge.code_review{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.special-grading-results.iot-results .iot-score-summary{margin:20px 0;text-align:center}.iot-score{background-color:bisque}.iot-confidence,.iot-score{border-radius:12px;padding:5px}.iot-confidence{background-color:#82b6e5}.iot-score-display{align-items:center;display:flex;flex-direction:column;gap:10px}.iot-score-display .score-number{color:#0891b2;font-size:3em;font-weight:700}.iot-score-display .score-feedback{color:#64748b;font-size:1.1em}.iot-criteria-breakdown{margin-top:20px}.criterion-card{background:#fff;border:2px solid #e2e8f0;border-radius:8px;margin-bottom:15px;padding:15px}.criterion-card.passed{background:#f0fdf4;border-color:#86efac}.criterion-card.failed{background:#fef2f2;border-color:#fca5a5}.criterion-header{gap:10px;margin-bottom:10px}.criterion-icon{font-size:1.3em}.criterion-name{color:#334155;flex:1 1}.criterion-points{color:#64748b;font-weight:700}.criterion-details{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:10px}.criterion-values{display:flex;gap:8px}.criterion-values .label{color:#64748b;font-weight:600}.criterion-values .value{color:#334155}.question-text-preview{background:#f8fafc;border-left:3px solid #3b82f6;border-radius:4px;margin:10px 0;padding:10px}.question-text-preview strong{color:#1e293b;display:block;font-size:.9em;margin-bottom:5px}.question-text-preview p{color:#475569;line-height:1.5;margin:0}.answer-detail{background:#f8fafc;border-left:3px solid #3b82f6;border-radius:4px;display:flex;flex-direction:column;font-size:12px;gap:4px;margin:6px 0;padding:8px}.answer-detail.correct{background:#f0fdf4;border-left:3px solid #22c55e}.answer-detail strong{color:#1e293b;display:block;font-size:.9em;margin-bottom:5px}.question-type-badge{font-size:.8em;margin:8px 0;padding:4px 10px}.mcq-options-preview{display:flex;flex-direction:column;gap:8px;margin:12px 0}.option-preview{align-items:center;background:#fff;border:2px solid #e2e8f0;border-radius:6px;display:flex;font-size:.9em;gap:8px;padding:8px 12px;transition:all .2s}.option-preview.correct-option{background:#f0fdf4;border-color:#86efac}.option-preview.wrong-option{background:#fef2f2;border-color:#fca5a5}.option-preview.student-correct{background:#f0fdf4;border-color:#22c55e;box-shadow:0 0 0 3px #22c55e1a}.option-preview .option-letter{color:#64748b;font-weight:700;min-width:20px}.option-preview .option-text{color:#334155;flex:1 1}.badge-small{background:#e0e7ff;border-radius:10px;color:#4338ca;font-size:.75em;font-weight:600;padding:2px 8px}.badge-small.correct{background:#dcfce7;color:#16a34a}.explanation-preview{background:#fffbeb;border-left:3px solid #fbbf24;border-radius:4px;margin-top:12px;padding:12px}.explanation-preview strong{color:#78350f;display:block;font-size:.9em;margin-bottom:6px}.explanation-preview p{color:#92400e;font-size:.9em;line-height:1.5;margin:0}.breakdown-answers{display:flex;flex-direction:column;gap:8px;margin:10px 0}.answer-label{color:#64748b;font-size:.85em;font-weight:600}.answer-value{color:#334155;font-size:.9em}.breakdown-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:10px}.breakdown-header-left{align-items:center;display:flex;gap:10px}.breakdown-question-number{color:#1e293b;font-size:1.1em;font-weight:700}.question-type-badge-mini{background:#e0e7ff;border-radius:12px;color:#4338ca;display:inline-block;font-size:.75em;font-weight:600;padding:3px 10px}.breakdown-header-right{align-items:center;display:flex;gap:12px}.breakdown-points-display{color:#64748b;font-size:.95em;font-weight:700}.breakdown-status{align-items:center;border-radius:50%;display:flex;font-size:1.1em;font-weight:700;height:28px;justify-content:center;width:28px}.breakdown-status.correct{background:#dcfce7;color:#16a34a}.breakdown-status.incorrect{background:#fee2e2;color:#dc2626}.breakdown-status.pending{background:#fef3c7;color:#ca8a04}.breakdown-points{display:none}.ai-grading-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:.75rem;font-weight:600;gap:4px;margin-left:8px;padding:4px 10px;white-space:nowrap}.ai-grading-badge.ai-graded{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 2px 4px #3b82f64d;color:#fff}.ai-grading-badge.overridden{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 2px 4px #8b5cf64d;color:#fff}.ai-confidence-section{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-left:4px solid #3b82f6;border-radius:6px;margin-top:12px;padding:10px 12px}.confidence-label{align-items:center;display:flex;font-size:.9rem;gap:10px}.confidence-label strong{color:#1e40af}.confidence-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.8rem;font-weight:600;gap:4px;letter-spacing:.5px;padding:4px 12px}.confidence-badge.high{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 4px #10b9814d;color:#fff}.confidence-badge.medium{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 2px 4px #f59e0b4d;color:#fff}.confidence-badge.low{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 2px 4px #ef44444d;color:#fff}.ai-feedback-section{background:linear-gradient(135deg,#fefce8,#fef9c3);border-left:4px solid #eab308;border-radius:8px;box-shadow:0 2px 6px #eab3081a;margin-top:14px;padding:14px}.ai-feedback-header{margin-bottom:8px}.ai-feedback-header strong{align-items:center;color:#854d0e;display:flex;font-size:.95rem;gap:6px}.ai-feedback-content{color:#713f12;line-height:1.6}.ai-feedback-content p{font-size:.9rem;margin:0}.ai-breakdown-section{background:#fff;border:2px solid #e5e7eb;border-radius:10px;box-shadow:0 2px 8px #0000000d;margin-top:16px;padding:16px}.ai-breakdown-header{border-bottom:2px solid #e5e7eb;margin-bottom:14px}.ai-breakdown-header strong{color:#1f2937;font-size:.95rem;gap:6px}.ai-breakdown-grid{grid-gap:12px;gap:12px;grid-template-columns:1fr}.breakdown-criterion{background:linear-gradient(135deg,#f9fafb,#f3f4f6);border-left:4px solid #3b82f6;border-radius:6px;padding:12px;transition:all .3s ease}.breakdown-criterion:hover{box-shadow:0 4px 8px #3b82f626;transform:translateX(4px)}.breakdown-criterion .criterion-name{color:#1e40af;font-size:.85rem;font-weight:700;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.breakdown-criterion .criterion-score{align-items:center;color:#374151;display:flex;font-size:1rem;font-weight:600;gap:8px;margin-bottom:8px}.breakdown-criterion .criterion-percent{color:#6b7280;font-size:.85rem;font-weight:500}.breakdown-criterion .criterion-feedback{background:#fff;border-radius:4px;color:#4b5563;font-size:.85rem;font-style:italic;line-height:1.5;margin-top:6px;padding:8px}.grade-override-notice{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border:2px solid #a855f7;border-radius:10px;box-shadow:0 2px 8px #a855f726;margin-top:16px;padding:16px}.override-header{border-bottom:2px solid #e9d5ff;margin-bottom:12px;padding-bottom:10px}.override-header strong{align-items:center;color:#6b21a8;display:flex;font-size:1rem;gap:6px}.override-details{display:flex;flex-direction:column;gap:12px}.override-score-comparison{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:12px;padding:12px}.final-score,.original-ai-score{display:flex;flex:1 1;flex-direction:column;gap:4px}.final-score .label,.original-ai-score .label{color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.original-ai-score .score{color:#9ca3af;font-size:1.5rem;font-weight:700;text-decoration:line-through}.final-score .score,.override-score-comparison .arrow{color:#8b5cf6;font-size:1.5rem;font-weight:700}.override-reason{background:#fff;border-left:4px solid #a855f7;border-radius:6px;padding:12px}.override-reason strong{color:#7c3aed;display:block;font-size:.9rem;margin-bottom:6px}.override-reason p{color:#4b5563;font-size:.85rem;line-height:1.5;margin:0}.override-meta{background:#fff;border-radius:4px;color:#6b7280;display:flex;font-size:.75rem;gap:8px;padding:8px}.override-meta span{align-items:center;display:flex;gap:4px}.original-ai-feedback{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:6px;margin-top:12px;padding:12px}.original-ai-feedback strong{color:#92400e;display:block;font-size:.85rem;margin-bottom:6px}.original-ai-feedback p{color:#78350f;font-size:.85rem;font-style:italic;line-height:1.5;margin:0}@media (max-width:768px){.ai-grading-badge{font-size:.7rem;padding:3px 8px}.ai-breakdown-grid{grid-template-columns:1fr}.override-score-comparison{flex-direction:column;gap:8px}.override-score-comparison .arrow{transform:rotate(90deg)}.confidence-label{align-items:flex-start;flex-direction:column;gap:6px}}@media print{.ai-grading-badge,.confidence-badge{background:#fff!important;border:1px solid #000;box-shadow:none!important;color:#000!important}.ai-breakdown-section,.ai-feedback-section,.grade-override-notice{box-shadow:none!important;page-break-inside:avoid}}.rubric-header-clickable:hover{box-shadow:0 4px 12px #667eea4d;opacity:.9}.rubric-header-clickable:active{transform:scale(.98)}.iot-question-rubric{margin:20px 0}.rubric-criterion{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;padding:16px}.rubric-criterion-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.rubric-grading p{border-radius:6px;margin:8px 0;padding:8px 12px}.rubric-full{background:#d1fae5;border-left:4px solid #10b981}.rubric-partial-tiers{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:6px;margin:8px 0;padding:12px}.rubric-partial-tier{margin:6px 0;padding-left:8px}.tier-points{color:#f59e0b;font-weight:600;margin-left:8px}.rubric-fail{background:#fee2e2;border-left:4px solid #ef4444}.rubric-requirements{background:#f3f4f6;border-left:4px solid #6b7280;border-radius:6px;margin-top:12px;padding:12px}.rubric-requirements p{color:#4b5563;margin:4px 0}.iot-full-report-btn{align-items:center;background:linear-gradient(135deg,#7c3aed,#6d28d9);border:none;border-radius:8px;box-shadow:0 0 14px #7c3aed40;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;margin-top:14px;padding:8px 18px;transition:box-shadow .2s,filter .2s}.iot-full-report-btn:hover{box-shadow:0 0 24px #7c3aed73;filter:brightness(1.08)}.results-answer-box.code-answer{background:#1e1e2e;border-color:#313244;border-radius:8px}.results-answer-box.code-answer strong{color:#cdd6f4;font-size:12px;letter-spacing:.05em;text-transform:uppercase}.code-block{background:#181825;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:13px;margin:8px 0 0;padding:12px;word-break:break-word}.results-answer-box.student-answer .code-block{color:#a6e3a1}.results-answer-box.correct-answer .code-block{color:#89dceb}.stats-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.stat-card{align-items:center;background:#fff;background:var(--m-bg-surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:8px;display:flex;flex:1 1;gap:8px;min-width:140px;padding:8px 12px}.stat-icon{font-size:18px}.stat-info h3{color:#111827;color:var(--m-text-primary,#111827);font-size:14px;font-weight:700;line-height:1.2;margin:0}.stat-info p{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:11px;margin:0}.grading-category{margin-bottom:12px}.grading-category-header h3{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:6px;color:#374151;color:var(--m-text-secondary,#374151);font-size:13px;margin:0 0 6px;padding:6px 10px}.submissions-table-container{border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:8px}.submissions-table{font-size:12px}.submissions-table thead tr{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc)}.submissions-table th{color:#6b7280;color:var(--m-text-muted,#6b7280);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.submissions-table td,.submissions-table th{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--m-border,#e5e7eb);padding:6px 10px}.submissions-table td{color:#111827;color:var(--m-text-primary,#111827);vertical-align:middle}.submissions-table tbody tr:last-child td{border-bottom:none}.submissions-table tbody tr:hover{background:#f1f4f8;background:var(--m-bg-card,#f1f4f8)}.item-info strong{color:#6b7280;color:var(--m-text-muted,#6b7280);display:block;font-size:11px}.item-info .item-title{color:#111827;color:var(--m-text-primary,#111827);font-size:12px;font-weight:600}.attempts-badge{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:10px;color:#374151;color:var(--m-text-secondary,#374151);display:inline-block;font-size:11px;font-weight:600;padding:2px 8px}.grade-display{color:#111827;color:var(--m-text-primary,#111827);font-size:12px;font-weight:600}.status-badge.graded{background:#dcfce7;background:var(--m-green-dim,#dcfce7);border:1px solid #bbf7d0;border:1px solid var(--m-green-border,#bbf7d0);border-radius:10px;color:#16a34a;color:var(--m-green,#16a34a)}.status-badge.graded,.status-badge.pending{align-items:center;display:inline-flex;font-size:11px;font-weight:600;padding:2px 8px}.status-badge.pending{background:var(--m-amber-dim,#fef3c7);border:1px solid #fde68a;border:1px solid var(--m-amber-border,#fde68a);border-radius:10px;color:#d97706;color:var(--m-amber,#d97706)}.status-badge.in-progress{background:#eff6ff;background:var(--m-accent-dim,#eff6ff);border:1px solid #bfdbfe;border:1px solid var(--m-accent-border,#bfdbfe);border-radius:10px;color:#3b82f6;color:var(--m-accent,#3b82f6)}.status-badge.in-progress,.status-badge.not-started{align-items:center;display:inline-flex;font-size:11px;font-weight:600;padding:2px 8px}.status-badge.not-started{background:#f8f9fc;background:var(--m-bg-elevated,#f8f9fc);border:1px solid #e5e7eb;border:1px solid var(--m-border,#e5e7eb);border-radius:10px;color:#6b7280;color:var(--m-text-muted,#6b7280)}.view-details-btn{background:#fff;background:var(--m-bg-surface,#fff);border:1px solid #d1d5db;border:1px solid var(--m-border-mid,#d1d5db);color:#374151;color:var(--m-text-secondary,#374151);font-size:11px;padding:4px 10px;transition:all .15s;white-space:nowrap}.view-details-btn:hover{background:#eff6ff;background:var(--m-accent-dim,#eff6ff);border-color:#bfdbfe;border-color:var(--m-accent-border,#bfdbfe);color:#3b82f6;color:var(--m-accent,#3b82f6)}.no-submissions{color:var(--m-text-muted,#6b7280);font-size:12px;padding:8px 10px}.circuit-action-buttons{display:flex;gap:10px;margin-bottom:5px}@media (max-width:768px){.circuit-action-buttons{flex-direction:column}}.circuit-filter-dropdown{margin-left:10px}@media (max-width:768px){.circuit-filter-dropdown{margin-left:0;margin-top:10px;width:100%}}.circuit-badge{border-radius:4px;font-size:.75em;font-weight:700;margin:5px;padding:4px 8px;text-align:center}.badge-valid{background-color:#10b981;color:#fff}.badge-error{background-color:#ef4444;color:#fff}.badge-warning{background-color:#f59e0b;color:#fff}.badge-draft{background-color:#6b7280;color:#fff}@media (max-width:768px){.circuit-badge{font-size:.7em;padding:3px 6px}}.circuit-simulator-info{color:#666;font-size:.85em;margin-top:5px}.circuit-card-actions{display:flex;gap:5px;margin-top:10px}@media (max-width:768px){.circuit-simulator-info{font-size:.75em}.circuit-card-actions{flex-wrap:wrap;gap:3px}}.circuit-empty-hint{color:#666;font-size:.9em;margin-top:10px}@media (max-width:768px){.circuit-empty-hint{font-size:.8em}}.circuit-modal-id{color:#666;font-size:.9em;margin-top:5px}.circuit-modal-actions{grid-gap:10px;display:grid;flex-wrap:wrap;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-bottom:15px}@media (max-width:768px){.circuit-modal-id{font-size:.8em}.circuit-modal-actions{gap:5px}}.circuit-validation-error{border-radius:5px;margin-bottom:8px;padding:10px}.validation-error-critical{background-color:#fee2e2;border-left:4px solid #ef4444}.validation-error-warning{background-color:#fef3c7;border-left:4px solid #f59e0b}.validation-error-detail{color:#666;font-size:.85em;margin-top:5px}@media (max-width:768px){.circuit-validation-error{font-size:.9em;padding:8px}.validation-error-detail{font-size:.8em}}.circuit-component-item{background-color:#f9fafb;border-left:3px solid #667eea;border-radius:5px;margin-bottom:10px;padding:8px}.circuit-component-details{color:#666;font-size:.85em;margin-top:5px}.circuit-component-sensor-link{color:#10b981;font-size:.85em;margin-top:5px}@media (max-width:768px){.circuit-component-item{font-size:.9em;padding:6px}.circuit-component-details,.circuit-component-sensor-link{font-size:.75em}}.circuit-error-container{background-color:#fee2e2;border-radius:5px;color:#991b1b;justify-content:space-between;margin-top:10px;padding:10px}.circuit-error-close{color:#991b1b;font-size:1.2em;font-weight:700;margin-left:10px}.circuit-error-close:hover{color:#7f1d1d}@media (max-width:768px){.circuit-error-container{align-items:flex-start;flex-direction:column;font-size:.9em;padding:8px}.circuit-error-close{align-self:flex-end;margin-left:0;margin-top:5px}}.session-info-banner{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;box-shadow:0 4px 6px #0000001a;color:#fff;margin-bottom:20px;padding:15px}.session-banner-content{align-items:center;display:flex;gap:15px}.session-banner-icon{font-size:2em;min-width:50px;text-align:center}.session-banner-text{flex:1 1}.session-banner-text h4{font-size:1.1em;font-weight:600;margin:0 0 5px}.session-banner-text p{font-size:.9em;margin:3px 0;opacity:.95}.session-banner-hint{font-size:.85em!important;margin-top:8px!important;opacity:.85!important}.session-banner-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5em;height:35px;justify-content:center;transition:background .3s ease;width:35px}.session-banner-close:hover{background:#ffffff4d}.session-linked{color:#10b981;font-weight:600}@media (max-width:768px){.session-info-banner{padding:12px}.session-banner-content{align-items:flex-start;flex-direction:column;gap:10px}.session-banner-icon{font-size:1.5em;min-width:auto}.session-banner-text h4{font-size:1em}.session-banner-text p{font-size:.85em}.session-banner-close{align-self:flex-end;position:absolute;right:10px;top:10px}}.circuit-lab-filter-section{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;gap:10px;margin-top:10px}.circuit-lab-filter-section label{color:#333;font-weight:600}.circuit-lab-filter-dropdown{flex:1 1;max-width:400px}.circuit-modal-hint{color:#666;font-size:14px;margin-bottom:20px}.circuit-lab-selection-list{display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto}.circuit-lab-selection-item{align-items:center;background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;display:flex;gap:15px;padding:15px;transition:all .2s}.circuit-lab-selection-item:hover{background:#e9ecef;border-color:#667eea;transform:translateY(-2px)}.circuit-practice-option{background:linear-gradient(135deg,#667eea,#764ba2);border:none;color:#fff;margin-bottom:15px}.circuit-practice-option:hover{transform:scale(1.02)}.circuit-practice-option .circuit-lab-info h4,.circuit-practice-option .circuit-lab-info p{color:#fff}.circuit-lab-icon{font-size:32px;min-width:50px;text-align:center}.circuit-lab-info h4{color:#333;font-size:16px;margin:0}.circuit-lab-info p{color:#666;font-size:13px;margin:5px 0 0}.circuit-badge.badge-practice{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.circuit-lab-info{color:#666;font-size:13px;margin-top:5px}.double_search{display:flex;flex-direction:column;gap:6px;width:50%}.circuit-cards-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-left:30px;max-height:70vh;overflow-y:auto;padding:4px 2px 12px;scrollbar-color:#d1d5db #0000;scrollbar-width:thin;width:100%}.circuit-cards-grid::-webkit-scrollbar{width:6px}.circuit-cards-grid::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.circuit-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 8px #00000014;cursor:pointer;display:flex;flex-direction:column;gap:10px;padding:18px;position:relative;transition:transform .25s ease,box-shadow .25s ease}.circuit-card:hover{box-shadow:0 8px 20px #0000001f;transform:translateY(-4px)}.circuit-card.circuit-card--valid{background:linear-gradient(180deg,#fff,#f0fdf4);border-color:#7175f0}.circuit-card .badge-container{display:flex;flex-wrap:wrap;gap:6px}.circuit-card .circuit-card-title{color:#111827;font-size:16px;font-weight:700;line-height:1.35;margin:0}.circuit-card .circuit-card-meta{display:flex;flex-direction:column;gap:4px;margin-top:20px}.circuit-card .circuit-card-meta p{color:#6b7280;font-size:13px;line-height:1.4;margin:0}.circuit-card .circuit-card-meta .circuit-synced{color:#059669;font-weight:500}.circuit-card .circuit-card-meta .circuit-unsynced{color:#d97706;font-weight:500}.code-hints-modal{max-height:90vh;max-width:900px;overflow-y:auto;width:90vw}.code-hints-content{display:flex;flex-direction:column;gap:1.5rem}.hint-section{background:#f9fafb;border-left:4px solid #3b82f6;border-radius:8px;padding:1rem}.hint-section h4{align-items:center;color:#1f2937;display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0 0 .75rem}.hint-section p{color:#4b5563;font-size:.9rem;margin:.5rem 0}.hint-section strong{color:#1f2937}.pin-mapping-list{display:flex;flex-direction:column;gap:.5rem}.pin-mapping-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;gap:1rem;padding:.75rem}.pin-name{background:#e0f2fe;border-radius:4px;color:#374151;font-family:Courier New,monospace;font-weight:600;padding:.25rem .5rem}.pin-arrow{color:#9ca3af;font-weight:700}.gpio-pin{background:#d1fae5;border-radius:4px;color:#059669;font-family:Courier New,monospace;font-weight:600;padding:.25rem .5rem}.code-block{border:1px solid #374151;border-radius:6px;color:#f9fafb;font-size:.85rem;margin:.5rem 0 0;padding:1rem;white-space:pre-wrap}.doc-link{color:#3b82f6;transition:all .2s ease}.doc-link:hover{color:#2563eb;text-decoration:underline}.tutorial-list{margin:.5rem 0 0 1.5rem;padding:0}.tutorial-list li{margin:.5rem 0}@media (max-width:768px){.code-hints-modal{width:95vw}.pin-mapping-item{align-items:flex-start;flex-direction:column;gap:.5rem}.code-block{font-size:.75rem}}@media (max-width:480px){.code-hints-modal{max-height:95vh;width:98vw}.code-block,.hint-section{padding:.75rem}.code-block{font-size:.7rem}}.panel-header{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.add-component-btn,.import-library-btn{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .3s ease}.add-component-btn:hover,.import-library-btn:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 4px 12px #10b9814d;transform:translateY(-2px)}.import-library-btn{background:linear-gradient(135deg,#3b82f6,#2563eb)}.import-library-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #3b82f64d}.import-library-modal{max-height:90vh;max-width:800px;overflow-y:auto;width:90vw}.import-options{display:flex;flex-direction:column;gap:1.5rem}.import-option{background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;padding:1rem}.import-option h4{color:#374151;font-size:1rem;font-weight:600;margin:0 0 .75rem}.file-input{background:#fff;border:2px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.75rem;transition:all .2s ease;width:100%}.file-input:hover{border-color:#3b82f6}.json-textarea{background:#fff;border:2px solid #d1d5db;border-radius:6px;font-family:Courier New,monospace;font-size:.85rem;padding:.75rem;resize:vertical;transition:all .2s ease;width:100%}.json-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.import-hint{color:#6b7280;font-size:.85rem;font-style:italic;margin:.5rem 0 0}.import-preview{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #bae6fd;border-radius:8px;padding:1rem}.import-preview h4{color:#0c4a6e;font-size:1rem;font-weight:600;margin:0 0 .75rem}.preview-info{display:flex;flex-direction:column;gap:.5rem}.preview-info p{color:#0c4a6e;font-size:.9rem;margin:0}.preview-info p.error{color:#dc2626;font-weight:600}.sample-format{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.sample-format h4{color:#374151;font-size:.95rem;font-weight:600;margin:0 0 .75rem}.code-sample{background:#1f2937;border-radius:6px;color:#f9fafb;font-family:Courier New,monospace;font-size:.8rem;margin:0;overflow-x:auto;padding:1rem;white-space:pre}@media (max-width:768px){.import-library-modal{width:95vw}.panel-header{flex-direction:column}.add-component-btn,.import-library-btn{justify-content:center;width:100%}.json-textarea{font-size:.75rem}.code-sample{font-size:.7rem}}@media (max-width:480px){.import-library-modal{max-height:95vh;width:98vw}.import-option{padding:.75rem}.json-textarea{rows:10}}.cancel-component-btn,.update-component-btn,.upload-component-btn{border:none;border-radius:.5rem;color:#fff;font-size:.8rem;font-size:600;padding:.65rem .8rem}.upload-component-btn.is-importing{background-color:#9ca3af;cursor:not-allowed}.upload-component-btn.is-ready{background-color:#10b981;cursor:pointer}.update-component-btn.is-importing{background-color:#9ca3af;cursor:not-allowed}.update-component-btn.is-ready{background-color:#f59e0b;cursor:pointer}.cancel-component-btn.is-importing{background-color:#6b7280;cursor:not-allowed}.cancel-component-btn.is-ready{background-color:#6b7280;cursor:pointer}.help-text{font-Size:.8rem;color:#6b7280;line-height:1.4;margin-top:1rem}.circuit-info-btn{background:#eef6f7;border-radius:8px;cursor:pointer;font-size:14px;margin-left:4px;padding:4px 8px}.circuit-info-btn:hover{background:#d7dadb}.split-canvas-wrapper{grid-gap:1px;display:grid;flex:1 1;gap:1px;grid-template-columns:4fr 150px 3fr;overflow:hidden;position:relative}@media (max-width:1200px){.split-canvas-wrapper{grid-template-columns:1fr;grid-template-rows:4fr 150px 3fr}}.canvas-section{background:#fff;display:flex;flex-direction:column;overflow:visible;position:relative}.hardware-canvas{background:linear-gradient(90deg,#f8f9fa,#fff)}.bridge-canvas{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-left:3px dashed #f59e0b;border-right:3px dashed #f59e0b}.cloud-canvas{background:linear-gradient(90deg,#fff,#f0f7ff)}.canvas-section-header{align-items:center;background:#f9fafb;border-bottom:2px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:space-between;padding:.2rem 1.5rem}.canvas-section-title{align-items:center;color:#1f2937;display:flex;font-size:.85rem;font-weight:600;gap:.75rem}.canvas-section-icon{font-size:1.1rem}.canvas-section-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:1rem;color:#fff;display:inline-block;font-size:.6rem;font-weight:600;letter-spacing:.5px;padding:.375rem .875rem;text-transform:uppercase}.cloud-badge{background:linear-gradient(135deg,#0ea5e9,#0284c7)}.data-flow-indicator{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 0 20px #667eea66;color:#fff;display:flex;flex-direction:column;gap:.75rem;justify-content:center;padding:1.25rem .45rem;position:relative;z-index:10}.flow-arrow{animation:pulse-arrow 2s infinite;font-size:2.5rem;font-weight:700}@keyframes pulse-arrow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.flow-label{font-size:.75rem;font-weight:700;letter-spacing:.5px;line-height:1.4;text-align:center}.flow-sublabel{font-size:.65rem;font-weight:500;opacity:.9}.flow-count{background:#fff3;border-radius:.75rem;font-size:.7rem;font-weight:600;padding:.25rem .625rem}@media (max-width:1200px){.data-flow-indicator{flex-direction:row;padding:.55rem 1.25rem}.flow-arrow{font-size:2rem;transform:rotate(90deg)}@keyframes pulse-arrow{0%,to{opacity:1;transform:rotate(90deg) scale(1)}50%{opacity:.8;transform:rotate(90deg) scale(1.2)}}}.cloud-component{background:linear-gradient(135deg,#fff,#f0f9ff);border-width:2px;box-shadow:0 4px 12px #0ea5e926}.cloud-component:hover{border-color:#0ea5e9;box-shadow:0 6px 20px #0ea5e940}.cloud-component.selected{border-color:#0284c7;box-shadow:0 0 0 3px #0ea5e94d}.cloud-component .component-pin{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#bae6fd;color:#075985}.cloud-component .component-pin.pin-connected,.cloud-component .component-pin:hover{background:#0ea5e9;border-color:#0284c7;color:#fff}.placed-component[data-category=azure_iot]{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-color:#0ea5e9}.placed-component[data-category=azure_analytics]{background:linear-gradient(135deg,#faf5ff,#f3e8ff);border-color:#8b5cf6}.placed-component[data-category=azure_storage]{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-color:#ec4899}.placed-component[data-category=azure_visualization]{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f59e0b}.placed-component[data-category=communication],.placed-component[data-category=edge_computing],.placed-component[data-category=security]{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f59e0b;box-shadow:0 4px 12px #f59e0b33}.canvas-empty-state{background:#f9fafbe6;border:2px dashed #d1d5db;border-radius:1rem;font-size:1rem;font-weight:500;padding:2rem}.cloud-canvas .canvas-empty-state{background:#f0f7ffe6;border-color:#bae6fd;color:#0369a1}.connection-line.bridge-connection{stroke:#f59e0b;stroke-width:4;stroke-dasharray:8,4;filter:drop-shadow(0 0 4px rgba(245,158,11,.5))}.connection-line.bridge-connection:hover{stroke-width:6;filter:drop-shadow(0 0 8px rgba(245,158,11,.8))}.component-category.cloud-category{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-left:4px solid #0ea5e9}.component-category.cloud-category h4{color:#0369a1}.component-category.cloud-category .component-item{background:#fff;border-color:#bae6fd}.component-category.cloud-category .component-item:hover{background:#f0f9ff;border-color:#0ea5e9}@media (max-width:1200px){.canvas-section-header{padding:.2rem 1rem}.canvas-section-title{font-size:.8rem}.canvas-section-icon{font-size:1rem}.canvas-section-badge{font-size:.55rem;padding:.25rem .625rem}}@media (max-width:768px){.canvas-section-header{padding:.2rem .75rem}.canvas-section-title{font-size:.8rem;gap:.5rem}.canvas-section-icon{font-size:.9rem}.data-flow-indicator{padding:.45rem 1rem}.flow-arrow{font-size:1.75rem}.flow-label{font-size:.7rem}}.placed-component:focus{outline:3px solid #667eea;outline-offset:2px}.cloud-component:focus{outline:3px solid #0ea5e9}@media (prefers-contrast:high){.data-flow-indicator{background:#000;color:#fff}}@media (prefers-reduced-motion:reduce){.flow-arrow{animation:none}.connection-line,.placed-component{transition:none}}@media print{.split-canvas-wrapper{grid-template-columns:1fr 1fr;height:auto}.data-flow-indicator{display:none}.canvas-section{page-break-inside:avoid}.component-menu-btn{display:none}}.canvas-zoom-controls{background:#fff;border-radius:.5rem;bottom:3rem;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;gap:.3rem;padding:.4rem;position:absolute;right:.3rem;z-index:100}.zoom-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#374151;cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:2rem;justify-content:center;transition:all .2s;width:2rem}.zoom-btn:hover{background:#f3f4f6;border-color:#9ca3af}.zoom-btn:active{transform:scale(.95)}.zoom-level{color:#6b7280;font-size:.75rem;font-weight:600;padding:.15rem;text-align:center}.global-tool-selector{background:#fff;border-radius:.5rem;box-shadow:0 2px 8px #00000026;display:flex;gap:.5rem;left:50%;padding:.5rem;position:absolute;top:90%;transform:translateX(-50%);z-index:200}.tool-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:.375rem;cursor:pointer;display:flex;font-size:1.5rem;height:2.5rem;justify-content:center;transition:all .2s;width:2.5rem}.tool-btn:hover{background:#f3f4f6;border-color:#667eea}.tool-btn.active{background:#667eea;border-color:#667eea;box-shadow:0 0 0 3px #667eea33;color:#fff}.tool-btn:active{transform:scale(.95)}.tool-icon{font-size:1.25rem}.canvas-viewport{flex:1 1;height:100%;overflow:visible;position:relative;width:100%}.canvas-viewport[data-tool-mode=select]{cursor:default}.canvas-viewport[data-tool-mode=select] .placed-component{cursor:move}.canvas-viewport[data-tool-mode=select] .component-pin{cursor:crosshair}.canvas-viewport[data-tool-mode=select] .component-menu-btn,.canvas-viewport[data-tool-mode=select] .connection-line{cursor:pointer}.canvas-viewport[data-tool-mode=pan]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="orange" stroke-width="2"><path d="M18 11V6a2 2 0 0 0-2-2h0a2 2 0 0 0-2 2v0M14 10V4a2 2 0 0 0-2-2h0a2 2 0 0 0-2 2v2M10 10.5V6a2 2 0 0 0-2-2h0a2 2 0 0 0-2 2v8"/><path d="m7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v0"/></svg>') 12 12,grab}.canvas-viewport[data-tool-mode=pan].panning{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="orange" stroke="darkorange" stroke-width="2"><path d="M18 11V6a2 2 0 0 0-2-2h0a2 2 0 0 0-2 2v0M14 10V4a2 2 0 0 0-2-2h0a2 2 0 0 0-2 2v2M10 10.5V6a2 2 0 0 0-2-2h0a2 2 0 0 0-2 2v8"/><path d="m7 15-1.76-1.76a2 2 0 0 0-2.83 2.82l3.6 3.6C7.5 21.14 9.2 22 12 22h2a8 8 0 0 0 8-8V7a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v0"/></svg>') 12 12,grabbing}.canvas-viewport[data-tool-mode=pan] .component-menu-btn,.canvas-viewport[data-tool-mode=pan] .component-pin,.canvas-viewport[data-tool-mode=pan] .connection-line,.canvas-viewport[data-tool-mode=pan] .placed-component{pointer-events:none}.canvas-content{min-height:400%;min-width:400%;position:absolute;transform-origin:0 0;transition:transform .2s ease-out}.canvas-content .circuit-canvas{min-height:6000px;min-width:6000px;position:relative}.component-category{background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;margin-bottom:.5rem;overflow:hidden;transition:all .2s ease}.component-category:hover{border-color:#d1d5db;box-shadow:0 2px 4px #0000000d}.component-category-header:hover{background:linear-gradient(135deg,#f3f4f6,#e5e7eb)}.category-toggle-icon{margin-right:.5rem}.category-count{background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:.25rem;color:#fff;min-width:1.5rem}.component-list{background:#fff;max-height:300px;padding:.5rem}.component-list::-webkit-scrollbar{width:6px}.component-list::-webkit-scrollbar-track{background:#f3f4f6;border-radius:3px}.component-list::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.component-list::-webkit-scrollbar-thumb:hover{background:#9ca3af}.component-icon{font-size:1.25rem}.component-name{flex:1 1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.component-view-btn{background:#3b82f61a;border:1px solid #3b82f64d;border-radius:.25rem;cursor:pointer;font-size:1rem;opacity:0;padding:.25rem .5rem;position:absolute;right:.5rem;top:50%;transform:translateY(-50%);transition:all .2s ease;z-index:10}.component-view-btn:hover{background:#3b82f633;border-color:#3b82f680;transform:translateY(-50%) scale(1.1)}.component-view-btn:active{transform:translateY(-50%) scale(.95)}.component-category-empty{font-size:.875rem;margin:0;padding:1.5rem}@media (max-width:768px){.component-name{font-size:.8rem}.component-list{max-height:200px}}.component-info-btn{border:none;border-radius:4px;cursor:pointer;font-size:14px;padding:0}.component-info-btn:hover{background:#138496}.component-part-number{color:#666;font-size:10px;font-style:italic}.config-modal-overlay{align-items:center;animation:fadeIn .2s ease;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.config-modal-content{animation:slideDown .3s ease;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-height:85vh;max-width:900px;width:90%}.config-modal-header{align-items:flex-start;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;padding:1.5rem}.config-modal-header h3{color:#1f2937;font-size:1.5rem;margin:0}.config-subtitle{color:#6b7280;font-size:.875rem;margin:.25rem 0 0}.config-close-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:1.5rem;line-height:1;padding:.25rem;transition:color .2s}.config-close-btn:hover{color:#ef4444}.config-tabs{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex}.config-tab{align-items:center;background:none;border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;display:flex;flex:1 1;font-size:1rem;font-weight:500;gap:.5rem;justify-content:center;padding:1rem;transition:all .2s}.config-tab:hover{background-color:#f3f4f6;color:#1f2937}.config-tab.active{background-color:#fff;border-bottom-color:#3b82f6;color:#3b82f6}.config-tab-badge{background-color:#3b82f6;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:.125rem .5rem}.config-tab.active .config-tab-badge{background-color:#2563eb}.config-errors{background-color:#fee2e2;border:1px solid #fecaca;border-radius:8px;margin:1rem 1.5rem;padding:1rem}.config-errors h4{color:#dc2626;font-size:1rem;margin:0 0 .5rem}.config-errors ul{color:#991b1b;margin:0;padding-left:1.5rem}.config-errors li{margin:.25rem 0}.config-modal-body{flex:1 1;overflow-y:auto;padding:1.5rem}.config-section{display:flex;flex-direction:column;gap:1rem}.config-empty{color:#6b7280;font-size:1rem;padding:3rem 1rem;text-align:center}.config-protocol-item{border:2px solid #e5e7eb;border-radius:8px;padding:1rem;transition:border-color .2s}.config-protocol-item:hover{border-color:#3b82f6}.config-protocol-header{margin-bottom:.5rem}.config-protocol-label{align-items:center;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;gap:.75rem}.config-protocol-name{color:#1f2937}.config-pin-item{border:2px solid #e5e7eb;border-radius:8px;padding:1rem;transition:border-color .2s}.config-pin-item:hover{border-color:#10b981}.config-pin-header{margin-bottom:.5rem}.config-pin-label{align-items:flex-start;cursor:pointer;display:flex;gap:.75rem}.config-pin-label>div{display:flex;flex-direction:column;gap:.25rem}.config-pin-name{color:#1f2937;font-size:1.1rem;font-weight:600}.config-pin-direction{color:#6b7280;font-size:.875rem;font-weight:400}.config-pin-description{color:#6b7280;font-size:.875rem;font-style:italic;margin:.5rem 0 0 2rem}.config-settings-form{grid-gap:1rem;background-color:#f9fafb;border-radius:6px;display:grid;gap:1rem;margin-top:1rem;padding:1rem}.config-form-group{display:flex;flex-direction:column;gap:.5rem}.config-label{color:#374151;font-size:.875rem;font-weight:500}.config-input{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s}.config-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.config-checkbox{cursor:pointer;height:18px;width:18px}.config-checkbox-large{cursor:pointer;flex-shrink:0;height:20px;width:20px}.config-modal-footer{background-color:#f9fafb;border-top:2px solid #e5e7eb;display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem}.config-cancel-btn,.config-save-btn{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s}.config-cancel-btn{background-color:#fff;border:2px solid #e5e7eb;color:#6b7280}.config-cancel-btn:hover{background-color:#f3f4f6;border-color:#d1d5db}.config-save-btn{background-color:#3b82f6;border:2px solid #3b82f6;color:#fff}.config-save-btn:hover{background-color:#2563eb;border-color:#2563eb}@media (max-width:768px){.config-modal-content{max-height:90vh;width:95%}.config-modal-header h3{font-size:1.25rem}.config-tab{font-size:.875rem;padding:.75rem .5rem}.config-settings-form{padding:.75rem}}.config-warnings{background-color:#fffbeb;border:2px solid #f59e0b;border-radius:8px;margin-bottom:16px;padding:12px}.config-warnings h4{color:#d97706;font-size:14px;margin:0 0 8px}.config-warnings ul{margin:0;padding-left:20px}.config-warnings li{color:#92400e;margin-bottom:4px}.warning-suggestion{color:#78350f;font-size:12px;font-style:italic;margin-top:4px;padding-left:16px}.config-close-btn-alt{background-color:#22c55e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px}.config-close-btn-alt:hover{background-color:#16a34a}.config-modal-overlay.dimmed{opacity:.5;pointer-events:none}.validation-panel-overlay{z-index:10001!important}.circuit-builder-container{display:flex;flex-direction:column;height:100vh;overflow:hidden}.circuit-builder-layout{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-columns:250px 1fr;overflow:hidden;width:100%}@media (max-width:1200px){.circuit-builder-layout{grid-template-columns:240px 1fr}}@media (max-width:768px){.circuit-builder-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.component-library-panel{border-bottom:2px solid #e5e7eb;border-right:none;max-height:300px;overflow-y:auto}}.component-library-panel{background:#f9fafb;border-right:2px solid #e5e7eb;overflow-y:auto;padding:.5rem}.component-library-panel .panel-header{border-bottom:2px solid #d1d5db;margin-bottom:1rem;padding-bottom:.5rem}.component-library-panel .panel-header h3{color:#eff1f3;font-size:.8rem;margin:0}.component-library-panel h3{color:#0a78e6;font-size:1rem;font-weight:700;margin-bottom:10px}.component-categories{display:flex;flex-direction:column}.component-category h4{color:#4b5563;font-size:.95rem;font-weight:600;margin:0 0 .5rem}.component-item{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:.5rem;cursor:grab;display:flex;padding:.5rem;transition:all .2s ease}.component-item-wrapper{margin-bottom:.25rem;position:relative}.component-item:hover{background:#eff6ff;border-color:#3b82f6;transform:translateX(4px)}.component-item-wrapper:hover .component-view-btn{opacity:1}.component-item:active{cursor:grabbing}.component-icon-small{font-size:10px}.component-name{color:#374151;font-size:.85rem}@media (max-width:768px){.component-library-panel{border-bottom:2px solid #e5e7eb;border-right:none}.component-list{flex-direction:row;flex-wrap:wrap}.component-item{flex-basis:calc(50% - 0.25rem);flex-grow:0;flex-shrink:1}}.canvas-area{background:#fff;display:flex;flex-direction:column;position:relative}.canvas-header{align-items:center;background:#f9fafb;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;padding:.1rem 1rem}.canvas-header h3{color:#1f2937;font-size:1rem;margin:0}.canvas-controls{display:flex;gap:.5rem}.canvas-control-btn{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;font-size:.75rem;padding:.5rem 1rem;transition:all .2s ease}.canvas-control-btn:hover{background:#eff6ff;border-color:#3b82f6}.circuit-canvas{background-color:#fff;flex:1 1;overflow:auto;position:relative}.circuit-canvas.show-grid{background-image:linear-gradient(90deg,#e5e7eb 1px,#0000 0),linear-gradient(180deg,#e5e7eb 1px,#0000 0)}.canvas-empty-state{color:#9ca3af;font-size:1.1rem;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.esp32-board{align-items:center;background:linear-gradient(135deg,#1e40af,#3b82f6);border:3px solid #1e3a8a;border-radius:.5rem;box-shadow:0 4px 6px #0003;display:flex;flex-direction:column;height:180px;padding:.5rem;position:absolute;width:120px}.board-label{color:#fff;font-size:.9rem;font-weight:700;margin-bottom:.5rem}.board-pins{display:flex;flex-direction:column;gap:.25rem;width:100%}.board-pin{background:#dbeafe;border:1px solid #60a5fa;border-radius:.25rem;cursor:pointer;font-size:.7rem;padding:.25rem .5rem;text-align:center}.board-pin.power-pin{background:#fef3c7;border-color:#f59e0b;font-weight:600}.placed-component{background:#fff;border:2px solid #d1d5db;border-radius:.5rem;box-shadow:0 2px 4px #0000001a;cursor:pointer;height:auto;min-height:80px;padding:.75rem;position:absolute;transition:all .2s ease;width:100px}.placed-component:hover{border-color:#3b82f6;box-shadow:0 4px 8px #3b82f64d}.placed-component.selected{border-color:#10b981;box-shadow:0 0 0 3px #10b98133}.component-icon-large{font-size:2rem;margin-bottom:.5rem;text-align:center}.component-label{color:#374151;font-size:.75rem;font-weight:600;margin-bottom:.5rem;text-align:center}.component-pins{display:flex;flex-direction:column;gap:.25rem}.component-pin:hover{background:#dbeafe;border-color:#3b82f6}.connections-layer{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.connection-line{pointer-events:all;transition:stroke-width .2s ease}.connection-line:hover{stroke-width:4}.connection-line.selected{stroke:#10b981;stroke-width:4}@media (max-width:768px){.canvas-header{align-items:flex-start;flex-direction:column;gap:.5rem}.canvas-controls{justify-content:space-between;width:100%}}.name-group{align-items:center;display:flex;flex-direction:row;gap:3px}.name-group label{color:#4b5563;font-size:.8rem;font-weight:600}.name-value{background:#fff;color:#1f2937;font-size:.85rem;margin:0}.name-input,.name-value{border:1px solid #d1d5db;border-radius:.375rem;padding:.5rem}.name-input{font-size:.8rem;transition:all .2s ease}.properties-panel{background:#f9fafb;border-left:2px solid #e5e7eb;overflow-y:auto;padding:1rem}.properties-panel .panel-header{border-bottom:2px solid #d1d5db;margin-bottom:1rem;padding-bottom:.5rem}.properties-panel .panel-header h3{color:#1f2937;font-size:1.1rem;margin:0}.properties-content{display:flex;flex-direction:column;gap:1rem}.property-group{display:flex;flex-direction:column;gap:.5rem}.property-group label{color:#4b5563;font-size:.8rem;font-weight:600}.property-value{background:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#1f2937;font-size:.85rem;margin:0;padding:.5rem}.property-input,.sim-property-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.8rem;padding:.5rem;transition:all .2s ease}.sim-property-input{width:50px}.property-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.pins-list{flex-direction:column;gap:.25rem}.pin-item{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;display:flex;font-size:.8rem;justify-content:space-between;padding:.5rem}.pin-connected{color:#10b981}.properties-empty{color:#9ca3af;padding:2rem;text-align:center}@media (max-width:768px){.properties-panel{border-left:none;border-top:2px solid #e5e7eb}}.validation-panel-overlay{background:#00000080;z-index:1000}.validation-panel-header{background:#f9fafb;border-bottom:2px solid #e5e7eb;padding:1.5rem}.validation-panel-header h3{align-items:center;color:#fff;display:flex;font-size:20px;font-weight:600;gap:10px;margin:0}.validation-warnings{color:#fff}.validation-close-btn{background:none;color:#6b7280;font-size:1.5rem;transition:color .2s ease}.validation-close-btn:hover{color:#ef4444}.validation-panel-body{padding:1.5rem}.validation-errors{display:flex;flex-direction:column;gap:1rem}.validation-errors h4{color:#ef4444;margin:0 0 1rem}.validation-item{border-left:4px solid;border-radius:.5rem;padding:1rem}.validation-item.error{background:#fef2f2;border-color:#ef4444}.validation-item.warning{background:#fffbeb;border-color:#f59e0b}.validation-item strong{color:#1f2937;margin-bottom:.5rem}.validation-item p{color:#4b5563;font-size:.9rem}.validation-success{gap:.75rem}.validation-success p{background:#f0fdf4;border-left:4px solid #10b981;border-radius:.375rem;color:#065f46;font-size:.9rem;margin:0;padding:.75rem}@media (max-width:768px){.validation-panel-body,.validation-panel-header{padding:1rem}}.circuit-actions-bar{background:#f9fafb;border-top:2px solid #e5e7eb;box-shadow:0 -2px 4px #0000001a;gap:1rem;padding:1rem 2rem;z-index:100}@media (max-width:768px){.circuit-actions-bar{flex-wrap:wrap;gap:.5rem;padding:1rem}.circuit-actions-bar>*{flex-basis:calc(50% - 0.25rem);flex-grow:1;flex-shrink:1}}@media (max-width:480px){.circuit-actions-bar>*{flex:1 1 100%}}.circuit-error-container{align-items:center;background:#fee2e2;border:2px solid #ef4444;border-radius:.5rem;box-shadow:0 4px 6px #0000001a;display:flex;gap:1rem;max-width:400px;padding:1rem 1.5rem;position:fixed;right:1rem;top:1rem;z-index:1000}.circuit-error-close{background:none;border:none;color:#ef4444;cursor:pointer;font-size:1.2rem;transition:transform .2s ease}.circuit-error-close:hover{transform:scale(1.2)}.loading-overlay{background:#ffffffe6;z-index:1000}.loading-overlay p{color:#4b5563;font-size:1.1rem}@media (max-width:768px){.circuit-error-container{left:.5rem;max-width:none;right:.5rem}}.placed-component.board-component{background:linear-gradient(135deg,#166534,#22c55e);border:3px solid #14532d;color:#fff;height:auto;min-height:130px;width:130px}.placed-component.board-component .component-label{color:#fff;font-weight:700}.placed-component.board-component .component-pin{background:#dbeafe;color:#1e40af;font-weight:600}.component-menu-btn{align-items:center;background:#ffffffe6;border:1px solid #d1d5db;border-radius:50%;color:#4b5563;cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:24px;justify-content:center;line-height:1;padding:0;position:absolute;right:4px;top:4px;transition:all .2s ease;width:24px;z-index:10}.component-menu-btn:hover{background:#3b82f6;border-color:#3b82f6;color:#fff;transform:scale(1.1)}.component-menu-btn:active{transform:scale(.95)}.properties-modal{max-width:500px;width:90%}.properties-modal .modal-body{max-height:70vh;overflow-y:auto}@media (max-width:768px){.component-menu-btn{font-size:1.2rem;height:28px;width:28px}}.circuit-canvas.connection-mode{cursor:crosshair}.component-pin.connection-active{animation:pulse 1s infinite;cursor:pointer}.component-pin.connection-active:hover{background:#3b82f6;color:#fff;transform:scale(1.1)}.component-pin.pin-connected{background:#10b981;border-color:#059669;color:#fff}.pin-indicator{font-size:.7rem;margin-left:4px}.temp-connection-line{opacity:.7;pointer-events:none}.canvas-control-btn.active{background:#3b82f6;border-color:#2563eb;color:#fff}.canvas-control-btn.cancel-btn{background:#ef4444;border-color:#dc2626;color:#fff}.component-pin{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.25rem;cursor:pointer;font-size:.65rem;padding:.25rem .5rem;position:relative;text-align:center;transition:all .2s ease}.component-pin:before{background:#6b7280;border-radius:50%;content:"";height:8px;left:75%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .2s ease;width:8px}.component-pin.connection-active:before,.component-pin:hover:before{opacity:1}.component-pin.pin-connected:before{background:#10b981;opacity:1}.connection-line{cursor:pointer;transition:all .2s ease}.connection-line:hover{stroke-width:5!important;filter:drop-shadow(0 0 4px rgba(0,0,0,.5))}.connection-line.selected{stroke:#3b82f6!important;stroke-width:5!important;animation:pulse-wire 1s infinite;filter:drop-shadow(0 0 6px rgba(59,130,246,.8))}@keyframes pulse-wire{0%,to{opacity:1}50%{opacity:.7}}.properties-modal textarea{font-family:inherit;font-size:.85rem}.pin-visibility-item{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:.375rem;display:flex;font-size:.8rem;justify-content:space-between;padding:.5rem}.pin-visibility-checkbox{accent-color:#10b981;cursor:pointer;height:18px;width:18px}.property-action-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;flex:1 1;font-size:.8rem;padding:.5rem;transition:all .2s ease}.property-action-btn:hover{background:#e5e7eb;border-color:#9ca3af}.property-action-btn:active{transform:scale(.98)}.panel-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #e5e7eb;border-radius:4px;color:#fff;display:flex;gap:8px;justify-content:space-between;margin-top:5px;padding:1rem;padding:8px}.panel-header h3{font-size:1.1rem;font-weight:600;margin:0}.add-component-btn{align-items:center;background-color:#fbfbfb;border:none;border-radius:50%;box-shadow:0 2px 8px #10b9814d;color:#fff;cursor:pointer;display:flex;font-size:1.4rem;height:30px;justify-content:center;transition:all .3s ease;width:30px}.add-component-btn:hover{background-color:#059669;box-shadow:0 4px 12px #10b98180;transform:scale(1.1) rotate(90deg)}.add-component-btn:active{transform:scale(.95) rotate(90deg)}.component-library-loading{align-items:center;color:#6b7280;display:flex;font-style:italic;justify-content:center;padding:2rem}.component-category-empty{color:#9ca3af;font-size:.9rem;font-style:italic;padding:1rem;text-align:center}.component-category-header{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:.2rem;padding:.5rem;transition:all .2s ease;-webkit-user-select:none;user-select:none}.component-category-header:hover{background:#3b82f633;transform:translateX(2px)}.component-category-header:active{transform:scale(.98)}.category-toggle-icon{color:#6b7280;font-size:.75rem;min-width:12px;text-align:center;transition:transform .2s ease}.component-category-header h4{flex:1 1;font-size:.7rem;font-weight:600;margin:0}.category-count{background:#0000000d;border-radius:12px;color:#6b7280;font-size:.75rem;font-weight:600;min-width:24px;padding:.25rem .5rem;text-align:center}.component-list{animation:slideDown .2s ease-out;overflow-y:auto}@keyframes slideDown{0%{max-height:0;opacity:0;transform:translateY(-10px)}to{max-height:1000px;opacity:1;transform:translateY(0)}}.component-category{margin-bottom:5px}.component-category:last-child{margin-bottom:0}.component-list{display:flex;flex-direction:column;gap:.2rem;padding-left:1.5rem}.connection-error-panel{background:#fff;border:2px solid #ef4444;border-radius:8px;bottom:20px;box-shadow:0 4px 12px #00000026;left:50%;max-height:400px;max-width:800px;overflow-y:auto;position:fixed;transform:translateX(-50%);width:90%;z-index:1000}.connection-error-panel-header{align-items:center;background:#fef2f2;border-bottom:1px solid #fee2e2;border-radius:6px 6px 0 0;display:flex;justify-content:space-between;padding:12px 16px}.connection-error-panel-title{color:#1b2199;font-size:16px;font-weight:600}.connection-error-clear-all{background:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:6px 12px;transition:background .2s}.connection-error-clear-all:hover{background:#dc2626}.connection-error-item{animation:slideIn .3s ease-out;border-bottom:1px solid #fee2e2;padding:16px}.connection-error-item:last-child{border-bottom:none}.connection-error-item.error{background:#fef2f2}.connection-error-item.warning{background:#fffbeb;border-bottom-color:#fef3c7}.connection-error-item-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.connection-error-item-title{color:#991b1b;flex:1 1;font-size:15px;font-weight:600}.connection-error-item.warning .connection-error-item-title{color:#92400e}.connection-error-close{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:20px;height:24px;justify-content:center;padding:0;transition:background .2s,color .2s;width:24px}.connection-error-close:hover{background:#f3f4f6;color:#374151}.connection-error-message{color:#374151;font-size:14px;line-height:1.5;margin-bottom:8px}.connection-error-details{background:#fff;border-left:3px solid #ef4444;border-radius:4px;color:#6b7280;font-family:Courier New,monospace;font-size:13px;padding:8px 12px}.connection-error-item.warning .connection-error-details{border-left-color:#f59e0b}.connection-error-timestamp{color:#9ca3af;font-size:12px;margin-top:4px}@media (max-width:768px){.connection-error-panel{bottom:10px;max-width:none;width:95%}.connection-error-panel-header{padding:10px 12px}.connection-error-item{padding:12px}.connection-error-item-title{font-size:14px}.connection-error-message{font-size:13px}.connection-error-details{font-size:12px}}.bulk-import-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);margin-left:.5rem}.bulk-import-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #2563eb4d;transform:translateY(-1px)}.info-section{background:#f8f9fa;border-left:4px solid;border-radius:8px;margin:20px 0;padding:15px 20px}.info-section:first-child{border-left-color:#007bff}.info-section:nth-child(2){border-left-color:#28a745}.info-section:nth-child(3){border-left-color:#ffc107}.info-section:nth-child(4){border-left-color:#17a2b8}.info-section:nth-child(5){border-left-color:#6f42c1}.info-section h3{align-items:center;color:#333;display:flex;font-size:18px;gap:8px;margin:0 0 15px}.outputs-table,.pin-table,.specs-table{border-collapse:collapse;margin-top:10px;width:100%}.outputs-table tbody tr:nth-child(2n),.pin-table tbody tr:nth-child(2n),.specs-table tr:nth-child(2n){background:#fff}.outputs-table td,.pin-table td,.specs-table td{border-bottom:1px solid #dee2e6;padding:10px}.outputs-table th,.pin-table th{background:#343a40;color:#fff;padding:12px;text-align:left}.pin-type{border-radius:4px;font-size:12px;font-weight:700;padding:4px 8px;text-transform:uppercase}.pin-type.power{background:#dc3545;color:#fff}.pin-type.ground{background:#6c757d;color:#fff}.pin-type.digital{background:#007bff;color:#fff}.pin-type.analog{background:#28a745;color:#fff}.doc-link,.doc-links{background:#fff;border-radius:6px;margin:10px 0;padding:10px}.doc-link a,.doc-links a{color:#007bff;font-weight:500;text-decoration:none;transition:color .2s}.doc-link a:hover,.doc-links a:hover{color:#0056b3;text-decoration:underline}.doc-links ul{list-style:none;margin:8px 0 0;padding:0}.doc-links li{border-bottom:1px solid #eee;padding:8px 0}.doc-links li:last-child{border-bottom:none}.component-library-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;gap:5px;justify-content:space-between;margin-bottom:.9rem;padding-bottom:.5rem}.component-library-header h3{color:#1f2937;font-size:.9rem;font-weight:600;margin:0}.fullscreen-library-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:.375rem;box-shadow:0 2px 4px #667eea4d;color:#fff;cursor:pointer;font-size:1rem;padding:.5rem .75rem;transition:all .2s ease}.fullscreen-library-btn:hover{box-shadow:0 4px 8px #667eea80;transform:scale(1.1)}.fullscreen-library-overlay{align-items:center;animation:fadeIn .3s ease;background:#000c;bottom:0;display:flex;justify-content:center;left:0;padding:2rem;position:fixed;right:0;top:0;z-index:10000}.fullscreen-library-container{animation:slideUp .4s ease;background:#fff;border-radius:1rem;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;height:90vh;max-width:1600px;width:100%}.fullscreen-library-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:1rem 1rem 0 0;color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem}.fullscreen-library-header h2{font-size:1.75rem;font-weight:700;margin:0}.fullscreen-close-btn{align-items:center;background:#fff3;border:2px solid #fff;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;transition:all .2s ease;width:40px}.fullscreen-close-btn:hover{background:#fff;color:#667eea;transform:rotate(90deg)}.fullscreen-library-content{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-columns:1fr 450px;overflow:hidden}.fullscreen-components-grid{background:#f9fafb;overflow-y:auto;padding:2rem}.fullscreen-category-section{margin-bottom:2.5rem}.fullscreen-category-title{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:1.25rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.fullscreen-component-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.fullscreen-component-card{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:.75rem;cursor:pointer;display:flex;flex-direction:column;gap:.5rem;padding:1rem;text-align:center;transition:all .2s ease}.fullscreen-component-card:hover{border-color:#667eea;box-shadow:0 8px 16px #667eea33;transform:translateY(-4px)}.fullscreen-component-card.selected{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea;box-shadow:0 4px 12px #667eea4d}.component-card-icon{font-size:2.5rem;margin-bottom:.5rem}.component-card-name{color:#1f2937;font-size:.875rem;font-weight:600}.component-card-spec{background:#f3f4f6;border-radius:.25rem;color:#6b7280;font-size:.75rem;padding:.25rem .5rem}.fullscreen-component-details{background:#fff;border-left:2px solid #e5e7eb;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;padding:2rem}.details-placeholder{align-items:center;color:#9ca3af;display:flex;flex-direction:column;gap:1rem;height:100%;justify-content:center;text-align:center}.placeholder-icon{font-size:4rem;opacity:.5}.details-placeholder h3{color:#6b7280;font-size:1.5rem;margin:0}.details-placeholder p{color:#9ca3af;margin:0}.details-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;gap:1rem;padding-bottom:1rem}.details-icon{font-size:3.5rem}.details-header h2{color:#1f2937;font-size:1.75rem;margin:0}.details-category{background:#667eea;border-radius:1rem;color:#fff;display:inline-block;font-size:.75rem;font-weight:600;margin-top:.25rem;padding:.25rem .75rem}.details-section{background:#f9fafb;border-left:4px solid #667eea;border-radius:.5rem;padding:1rem}.details-section h4{color:#1f2937;font-size:1.1rem;margin:0 0 1rem}.details-section p{color:#4b5563;line-height:1.6;margin:0}.specs-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr}.spec-item{background:#fff;border-radius:.375rem;display:flex;justify-content:space-between;padding:.5rem}.spec-item strong{color:#6b7280;font-size:.875rem;text-transform:capitalize}.spec-item span{color:#1f2937;font-weight:500}.pins-list{display:flex;flex-wrap:wrap;gap:.5rem}.pin-badge{background:#3b82f6;border-radius:.375rem;font-family:Courier New,monospace;font-size:.875rem;padding:.375rem .75rem}.doc-link,.pin-badge{color:#fff;font-weight:500}.doc-link{background:#667eea;border-radius:.5rem;display:inline-block;margin:.25rem .5rem .25rem 0;padding:.75rem 1.25rem;text-decoration:none;transition:all .2s}.doc-link:hover{background:#764ba2;box-shadow:0 4px 8px #667eea4d;transform:translateY(-2px)}.doc-link.small{font-size:.875rem;padding:.5rem 1rem}.doc-links-group{margin-top:.75rem}.doc-links-group strong{color:#4b5563;display:block;margin-bottom:.5rem}.details-actions{border-top:2px solid #e5e7eb;display:flex;gap:.75rem;margin-top:auto;padding-top:1rem}.details-action-btn{border:none;border-radius:.5rem;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.details-action-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.details-action-btn.primary:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.details-action-btn.secondary{background:#f3f4f6;border:2px solid #e5e7eb;color:#4b5563}.details-action-btn.secondary:hover{background:#e5e7eb}.fullscreen-component-details::-webkit-scrollbar,.fullscreen-components-grid::-webkit-scrollbar{width:8px}.fullscreen-component-details::-webkit-scrollbar-track,.fullscreen-components-grid::-webkit-scrollbar-track{background:#f3f4f6}.fullscreen-component-details::-webkit-scrollbar-thumb,.fullscreen-components-grid::-webkit-scrollbar-thumb{background:#9ca3af;border-radius:4px}.fullscreen-component-details::-webkit-scrollbar-thumb:hover,.fullscreen-components-grid::-webkit-scrollbar-thumb:hover{background:#6b7280}@media (max-width:1200px){.fullscreen-library-content{grid-template-columns:1fr 400px}.fullscreen-component-cards{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}@media (max-width:992px){.fullscreen-library-content{grid-template-columns:1fr}.fullscreen-component-details{display:none}}.clear-search-btn{border:aqua;font-size:1rem;height:24px;position:absolute;top:50%;transform:translateY(-50%)}.component-search-input{font-size:.8rem;height:30px;padding-right:5px}.validation-filters{border-bottom:1px solid #e5e7eb;display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}.filter-btn{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s}.filter-btn:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.filter-btn.active{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.filter-btn:disabled{background-color:#f9fafb;cursor:not-allowed;opacity:.5}.validation-solution{color:#059669;display:block;font-style:italic;margin-top:4px}.validation-empty{color:#6b7280;padding:20px;text-align:center}.validation-empty p{font-size:14px;margin:0}.validation-item{background-color:#fef2f2;border-left:4px solid #ef4444;border-radius:4px;margin-bottom:8px;padding:12px}.validation-item.warning{background-color:#fffbeb;border-left-color:#f59e0b}.validation-item strong{display:block;font-size:13px;font-weight:600;margin-bottom:4px}.validation-item p{color:#374151;font-size:14px;margin:0}.validation-item.clickable{position:relative}.placed-component.component-highlighted{animation:highlight-pulse 2s ease-in-out 3;border-color:#3b82f6!important;box-shadow:0 0 0 3px #3b82f6,0 0 20px #3b82f680!important;z-index:1000!important}@keyframes highlight-pulse{0%,to{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f6,0 0 20px #3b82f680;opacity:1}50%{border-color:#60a5fa;box-shadow:0 0 0 6px #3b82f6,0 0 30px #3b82f6cc;opacity:.3}}.validation-item.clickable{cursor:pointer;transition:all .2s ease}.validation-item.clickable:hover{background-color:#3b82f61a;border-left:4px solid #3b82f6;padding-left:12px;transform:translateX(2px)}.validation-item.clickable:active{transform:scale(.98)}.validation-component-hint{color:#6b7280;display:block;font-size:.75rem;font-style:italic;margin-top:4px;opacity:0;transition:opacity .2s ease}.validation-item.clickable:hover .validation-component-hint{opacity:1}.circuit-actions-bar{align-items:center;border-top:1px solid #1e2d40;display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px}.circuit-actions-bar button{border:1px solid #0000!important;border-radius:8px!important;cursor:pointer!important;filter:saturate(.75) brightness(.9)!important;font-family:Segoe UI,system-ui,sans-serif!important;font-size:12px!important;font-weight:600!important;line-height:1.4!important;padding:8px 16px!important;transition:filter .15s ease,box-shadow .15s ease!important;white-space:nowrap!important}.circuit-actions-bar button:hover:not(:disabled){box-shadow:0 0 0 1px #ffffff14!important;filter:saturate(.9) brightness(1.05)!important}.circuit-actions-bar button:active:not(:disabled){filter:saturate(.8) brightness(.85)!important}.circuit-actions-bar button:disabled{cursor:not-allowed!important;filter:saturate(0) brightness(.5)!important;opacity:.5!important}.sensor-config-modal-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:10000}.sensor-config-modal{animation:slideUp .3s cubic-bezier(.34,1.56,.64,1);background:#fff;border-radius:16px;box-shadow:0 24px 48px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:650px;overflow:hidden;width:90%}.modal-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e5e7eb;color:#fff;justify-content:space-between;padding:1.75rem 2rem}.header-content,.modal-header{align-items:center;display:flex}.header-content{gap:1rem}.header-icon{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:12px;display:flex;font-size:2rem;height:48px;justify-content:center;width:48px}.header-text h3{font-size:1.25rem;font-weight:700;line-height:1.2;margin:0}.header-text p{font-size:.875rem;font-weight:400;margin:.25rem 0 0;opacity:.9}.close-btn{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1.5rem;height:36px;justify-content:center;transition:all .2s;width:36px}.close-btn:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-body{background:#fafbfc;flex:1 1;overflow-y:auto;padding:2rem}.generation-types{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));margin-bottom:2rem}.type-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:.5rem;padding:.875rem .5rem;transition:all .2s}.type-btn:hover{background:#f8f9ff;border-color:#667eea;box-shadow:0 4px 12px #667eea26;transform:translateY(-2px)}.type-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;box-shadow:0 4px 12px #667eea4d;color:#fff}.type-icon{display:block;font-size:1.5rem}.type-label{font-size:.8rem;font-weight:600;text-align:center}.config-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000000d;padding:1.5rem}.outputs-grid{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.output-field{align-items:center;display:flex;gap:1rem}.output-label{color:#374151;font-size:.9rem;font-weight:600;min-width:100px}.output-controls{align-items:center;display:flex;flex:1 1;gap:.5rem}.value-input{border:2px solid #e5e7eb;border-radius:8px;flex:1 1;font-family:inherit;font-size:.9rem;min-width:0;padding:.625rem .875rem;transition:all .2s}.value-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.variation-control{align-items:center;background:#f3f4f6;border-radius:8px;display:flex;gap:.375rem;padding:.5rem .75rem}.variation-symbol{color:#6b7280;font-size:.9rem;font-weight:600}.variation-input{background:#fff;border:2px solid #e5e7eb;border-radius:6px;font-size:.85rem;padding:.375rem .5rem;transition:all .2s;width:70px}.variation-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a;outline:none}.frequency-control{border-top:1px solid #e5e7eb;padding-top:1.5rem}.frequency-control label{color:#374151;display:block;font-size:.9rem;font-weight:600;margin-bottom:.625rem}.frequency-input-wrapper{align-items:center;display:flex;gap:.5rem;max-width:200px}.frequency-input{border:2px solid #e5e7eb;border-radius:8px;flex:1 1;font-size:.9rem;padding:.625rem .875rem;transition:all .2s}.frequency-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.unit{color:#6b7280;font-size:.875rem;font-weight:600}.custom-function-section{display:flex;flex-direction:column;gap:1rem}.function-template{background:#1e293b;border-radius:8px;color:#e2e8f0;font-family:Courier New,monospace;font-size:.85rem;line-height:1.6;overflow-x:auto;padding:1rem}.function-template code{display:block;white-space:pre}.function-input{border:2px solid #e5e7eb;border-radius:8px;font-family:Courier New,monospace;font-size:.875rem;min-height:180px;padding:1rem;resize:vertical;transition:all .2s;width:100%}.function-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.modal-footer{background:#fff;border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1.5rem 2rem}.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.95rem;font-weight:600;padding:.75rem 1.75rem;transition:all .2s}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 8px #667eea4d;color:#fff}.btn-primary:hover{box-shadow:0 4px 16px #667eea66;transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}@media (max-width:640px){.sensor-config-modal{max-height:95vh;width:95%}.modal-header{padding:1.25rem 1.5rem}.modal-body{padding:1.5rem}.modal-footer{padding:1.25rem 1.5rem}.generation-types{gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}.type-btn{padding:.75rem .375rem}.type-icon{font-size:1.25rem}.type-label{font-size:.75rem}.output-field{align-items:stretch;flex-direction:column;gap:.5rem}.output-label{min-width:auto}.output-controls{flex-wrap:wrap}.variation-control{width:100%}.variation-input{flex:1 1;width:auto}.header-icon{font-size:1.5rem;height:40px;width:40px}.header-text h3{font-size:1.125rem}.header-text p{font-size:.8rem}}.monaco-code-editor{background:#1e1e1e;border-radius:8px;box-shadow:0 4px 6px #0000001a;display:flex;flex-direction:column;height:100%;max-height:100%;overflow:hidden}.editor-header{align-items:flex-start;background:#252526;border-bottom:2px solid #3e3e42;display:flex;flex-shrink:0;gap:4px;justify-content:space-between;max-height:30px;padding:12px 0}.editor-title{align-Items:flex-start;align-items:center;display:flex;flex-direction:column;flex-wrap:nowrap;gap:2px}.editor-title h3{color:#ccc;display:flex;flex-direction:row;font-size:15px;font-weight:600;gap:8px;margin:0;white-space:nowrap}.file-name{background:#3e3e42;border-radius:4px;color:#4ec9b0;display:inline-block;font-family:Courier New,monospace;font-size:13px;font-weight:500;padding:4px 12px;white-space:nowrap;writing-mode:horizontal-tb}.editor-controls{flex-wrap:nowrap;gap:2px}.editor-action-btn,.editor-controls{align-items:center;display:flex;flex-direction:row}.editor-action-btn{background:#3e3e42;border:1px solid #555;border-radius:4px;color:#ccc;cursor:pointer;font-size:13px;font-weight:500;gap:6px;padding:6px 14px;transition:all .2s ease;white-space:nowrap}.editor-action-btn:hover:not(:disabled){background:#505050;border-color:#0078d4;color:#fff;transform:translateY(-1px)}.editor-action-btn:active:not(:disabled){transform:translateY(0)}.editor-action-btn:disabled{cursor:not-allowed;opacity:.5}.monaco-editor-wrapper{background:#1e1e1e;border:1px solid #3e3e42;flex:1 1;height:100%;max-height:none;min-height:0;overflow:hidden;position:relative}.monaco-loading{align-items:center;background:#1e1e1e;color:#ccc;display:flex;flex-direction:column;height:400px;justify-content:center}.monaco-loading .loader{animation:spin 1s linear infinite;border:4px solid #3e3e42;border-radius:50%;border-top-color:#0078d4;height:48px;margin-bottom:16px;width:48px}.monaco-loading p{color:#858585;font-size:14px;margin:0}.editor-footer{background:#252526;border-top:1px solid #3e3e42;flex-shrink:0;font-size:.875rem;gap:1rem;justify-content:space-between;min-height:40px;padding:10px 16px}.editor-footer,.editor-stats{align-items:center;color:#858585;display:flex;flex-direction:row}.editor-stats{font-family:Courier New,monospace;font-size:12px;gap:16px}.editor-stats span{gap:6px;white-space:nowrap}.editor-hints,.editor-stats span{align-items:center;display:flex;flex-direction:row}.editor-hints{color:#6a6a6a;font-family:Courier New,monospace;font-size:11px;gap:16px}.editor-hints span{align-items:center;display:flex;flex-direction:row;gap:4px;white-space:nowrap}@media (max-width:1200px){.monaco-editor-wrapper{min-height:300px}.editor-header{padding:10px 0}.editor-footer{padding:4px 6px}.editor-action-btn{font-size:12px;padding:5px 12px}}@media (max-width:992px){.editor-header{align-items:flex-start;flex-direction:column;gap:4px;min-height:70px}.editor-title{align-items:flex-start;width:100%}.editor-controls{flex-wrap:wrap;justify-content:flex-start;width:100%}.monaco-editor-wrapper{min-height:350px}}@media (max-width:768px){.monaco-editor-wrapper{min-height:300px}.editor-title{align-items:flex-start;gap:8px}.editor-title h3{font-size:14px}.editor-action-btn{font-size:12px;padding:5px 10px}.editor-hints,.editor-stats{flex-direction:column;gap:8px}.file-name{font-size:12px;padding:3px 10px}}@media (max-width:576px){.monaco-editor-wrapper{min-height:250px}.editor-header{padding:8px 0}.editor-footer{padding:4px 6px}.editor-action-btn{flex:1 1 auto;justify-content:center;min-width:80px}.editor-hints{display:none}}.editor-action-btn:focus-visible{outline:2px solid #0078d4;outline-offset:2px}@media print{.editor-footer,.editor-header{display:none}.monaco-editor-wrapper{border:none}}.serial-input-section{background:#1e1e1e;border-top:1px solid #3c3c3c;padding:.75rem 1rem}.serial-input-section form{align-items:center;display:flex;gap:.5rem}.serial-input-field{background:#2d2d2d;border:1px solid #3c3c3c;border-radius:4px;color:#d4d4d4;flex:1 1;font-family:Consolas,Courier New,monospace;font-size:14px;padding:.5rem .75rem}.serial-input-field:focus{border-color:#007acc;outline:none}.serial-input-field::placeholder{color:#6a6a6a}.serial-send-btn{background:#007acc;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:.5rem 1rem;transition:background .2s}.serial-send-btn:hover:not(:disabled){background:#005a9e}.serial-send-btn:disabled{background:#3c3c3c;color:#6a6a6a;cursor:not-allowed}.simulator-page-container{background-color:#f9fafb;display:flex;flex-direction:column;height:100vh}.simulator-layout{grid-gap:1rem;display:grid;flex:1 1;gap:1rem;grid-template-columns:300px 1fr 400px;overflow-x:hidden;overflow-y:auto;padding:1rem;width:95%}@media (max-width:1400px){.simulator-layout{grid-template-columns:250px 1fr 350px}}@media (max-width:1024px){.simulator-layout{overflow-y:auto}}.circuit-info-panel{background-color:#fff;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;padding:1rem}.circuit-info-panel h3{border-bottom:2px solid #e5e7eb;color:#1f2937;font-size:.9rem;font-weight:600;margin:0;padding-bottom:.5rem}.circuit-details{gap:1rem}.circuit-details,.info-group{display:flex;flex-direction:column}.info-group{gap:.25rem}.info-group label{color:#6b7280;font-size:.875rem;font-weight:600;text-transform:uppercase}.info-group p{word-wrap:break-word;color:#1f2937;font-size:.95rem;margin:0}.status-badge{border-radius:.375rem;font-size:.875rem;font-weight:500;padding:.25rem .75rem}.status-badge.draft{background-color:#fef3c7;color:#92400e}.status-badge.validated{background-color:#d1fae5;color:#065f46}.components-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.component-item-small{align-items:center;border-radius:.375rem;display:flex;font-size:.875rem;gap:.5rem}.component-item-small,.session-id{background-color:#f3f4f6;padding:.5rem}.session-id{border-radius:.25rem;font-family:Courier New,monospace;font-size:.75rem!important}.circuit-actions{border-top:1px solid #e5e7eb;margin-top:auto;padding-top:1rem}.loading-placeholder{align-items:center;color:#6b7280;display:flex;flex-direction:column;gap:1rem;justify-content:center;padding:2rem}.code-editor-wrapper{display:"flex";flex-direction:"column";gap:"10px"}.code-editor-panel{background-color:#fff;background:#1e1e1e;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;display:flex;flex:1 1;flex-direction:column;height:500px;min-height:0;min-height:500px;overflow:hidden}.code-editor-panel>div{flex:1 1;min-height:0;overflow:hidden}@media (max-width:1024px){.code-editor-panel{min-height:500px}}.output-console-panel{background-color:#1f2937;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;display:flex;flex:0 0 300px;flex-direction:column;overflow:hidden}.console-header{align-items:center;background-color:#111827;border-bottom:1px solid #374151;display:flex;justify-content:space-between;padding:1rem 1.5rem}.console-header h3{color:#f9fafb;font-size:1.25rem;font-weight:600;margin:0}.console-controls{align-items:center;display:flex;gap:1rem}.auto-scroll-toggle{align-items:center;color:#d1d5db;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;-webkit-user-select:none;user-select:none}.auto-scroll-toggle input[type=checkbox]{cursor:pointer}.clear-output-btn{background:none;border:none;color:#ef4444;cursor:pointer;font-size:1.25rem;padding:.25rem;transition:transform .2s}.clear-output-btn:hover{transform:scale(1.1)}.serial-output-content{background-color:#1f2937;flex:1 1;font-family:Courier New,Courier,monospace;font-size:.875rem;line-height:1.6;max-height:250px;overflow-y:auto;padding:1rem}.output-line{border-radius:.25rem;display:flex;gap:.75rem;margin-bottom:.25rem;padding:.25rem .5rem}.output-line.log{color:#d1d5db}.output-line.error{background-color:#ef44441a;color:#fca5a5}.output-line.warning{background-color:#f59e0b1a;color:#fcd34d}.output-line.info{background-color:#3b82f61a;color:#93c5fd}.output-timestamp{color:#9ca3af;white-space:nowrap}.output-message{word-wrap:break-word;flex:1 1;overflow-wrap:break-word;white-space:pre-wrap;word-break:break-word}.output-placeholder{align-items:center;color:#6b7280;display:flex;height:100%;padding:2rem;text-align:center}.output-placeholder p{margin:0}.simulator-status-bar{background-color:#111827;border-top:1px solid #374151;color:#d1d5db;display:flex;font-size:.875rem;gap:20px;justify-content:flex-start;padding:.75rem 1.5rem}@media (max-width:1024px){.output-console-panel{min-height:300px}}@media (max-width:768px){.simulator-control-bar{flex-wrap:wrap}}.simulator-error-container{align-items:center;background-color:#fee2e2;border-radius:.5rem;bottom:1rem;box-shadow:0 4px 6px #0000001a;color:#991b1b;display:flex;gap:1rem;max-width:400px;padding:1rem 1.5rem;position:fixed;right:1rem;z-index:1000}.error-close{background:none;border:none;color:#991b1b;cursor:pointer;font-size:1.25rem;line-height:1;padding:0}.loading-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;flex-direction:column;gap:1rem;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.loading-overlay p{color:#fff;font-size:1.25rem;margin:0}.loader{animation:spin 1s linear infinite;border:4px solid #f3f4f6;border-radius:50%;border-top-color:#3b82f6;height:40px;width:40px}.circuit-info-panel::-webkit-scrollbar,.serial-output-content::-webkit-scrollbar{width:8px}.circuit-info-panel::-webkit-scrollbar-track{background-color:#f3f4f6;border-radius:.5rem}.serial-output-content::-webkit-scrollbar-track{background-color:#111827;border-radius:.5rem}.circuit-info-panel::-webkit-scrollbar-thumb,.serial-output-content::-webkit-scrollbar-thumb{background-color:#9ca3af;border-radius:.5rem}.circuit-info-panel::-webkit-scrollbar-thumb:hover,.serial-output-content::-webkit-scrollbar-thumb:hover{background-color:#6b7280}.output-line.log{color:#fff}.output-line.fallback{background-color:#fbbf241a;border-left:3px solid #fbbf24;color:#fbbf24;padding-left:8px}.output-line.fallback:before{content:"⚠️ ";margin-right:4px}.output-line.warning{color:#fb923c;font-weight:500}.output-line.info{color:#60a5fa}.output-line.error{color:#f87171;font-weight:600}.output-line.fallback:hover:after{background:#1f2937;border-radius:4px;box-shadow:0 4px 6px #0000004d;color:#fbbf24;content:"This output was generated using component library format because no Serial.print() was found in code";font-size:12px;left:100%;margin-left:10px;padding:8px 12px;position:absolute;top:0;white-space:nowrap;z-index:1000}.component-states-container{display:flex;flex-direction:column;gap:10px;padding:10px 0}.component-section{display:flex;flex-direction:column;gap:5px}.section-title{background-color:azure;border-bottom:2px solid #e5e7eb;color:#374151;font-size:13px;font-weight:600;margin:0;padding:8px 0}.components-list-live{display:flex;flex-direction:column;gap:10px}.component-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:8px;transition:all .2s ease}.component-card:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.sensor-card{border-left:3px solid #10b981}.actuator-card{border-left:3px solid #f59e0b}.component-header{align-items:center;display:flex;gap:6px;margin-bottom:3px}.component-icon{flex-shrink:0;font-size:18px}.component-info{display:flex;flex:1 1;gap:2px}.component-name{color:#111827;font-size:12px;font-weight:500}.component-type{color:#6b7280;font-size:11px;font-weight:500}.live-indicator{animation:pulse 2s ease-in-out infinite;font-size:12px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.component-values{align-items:center;background:#f9fafb;border-radius:6px;display:flex;min-height:15px;padding:8px}.sensor-readings{display:flex;flex-direction:column;gap:6px;width:100%}.sensor-reading-item{align-items:center;display:flex;font-size:13px;justify-content:space-between}.reading-label{color:#6b7280;font-weight:500;text-transform:capitalize}.reading-value{font-family:Courier New,monospace}.reading-value,.sensor-value{color:#111827;font-weight:600}.sensor-value{font-size:11px}.sensor-value-empty{color:#9ca3af;font-size:11px;font-style:italic}.actuator-state{align-items:center;display:flex;gap:10px;width:100%}.state-badge{border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.state-high{background:#dcfce7;border:1px solid #86efac;color:#166534}.state-low{background:#f3f4f6;border:1px solid #d1d5db;color:#4b5563}.state-pwm{background:#fef3c7;border:1px solid #fde047;color:#92400e}.state-pin{color:#6b7280;font-size:11px;font-weight:500}.actuator-state-empty{color:#9ca3af;font-size:13px;font-style:italic}.no-components-message{color:#6b7280;padding:40px 20px;text-align:center}.no-components-message p{font-size:14px;margin:8px 0}.no-components-message .hint{color:#9ca3af;font-size:12px;font-style:italic}.circuit-info-footer{border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:10px;margin-top:20px;padding-top:15px}.info-label{color:#6b7280;font-weight:500}.info-value{color:#111827;font-weight:600}.status-badge{font-size:11px;padding:4px 10px}.status-badge.valid{background:#dcfce7;color:#166534}.status-badge.invalid{background:#fee2e2;color:#991b1b}@media (max-width:1200px){.component-card{padding:10px}.component-icon{font-size:15px}.component-name,.component-type{font-size:10px}}.sensor-slider-container{background:#ffffff0d;border-top:1px solid #ffffff1a;margin-top:8px;padding:10px}.slider-control{margin-bottom:8px}.slider-control:last-child{margin-bottom:0}.slider-label{color:#94a3b8;display:flex;font-size:12px;justify-content:space-between;margin-bottom:4px}.slider-value{color:#60a5fa;font-weight:600}.sensor-slider{-webkit-appearance:none;background:#f306061a;border-radius:2px;height:4px;outline:none;width:100%}.sensor-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#60a5fa;border-radius:50%;cursor:pointer;height:16px;width:16px}.sensor-slider::-moz-range-thumb{background:#60a5fa;border:none;border-radius:50%;cursor:pointer;height:16px;width:16px}.ai-loading-overlay{align-items:center;background-color:#000c;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.ai-loading-spinner{animation:spin 1s linear infinite;border:8px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:60px;width:60px}.ai-loading-title{color:#fff;font-size:18px;font-weight:700;margin-top:20px}.ai-loading-subtitle{color:#aaa;font-size:14px;margin-top:10px}.validation-section-title{font-size:1.1rem;margin-bottom:16px}.error-title{border-bottom-color:#dc2626;color:#dc2626}.warning-title{border-bottom-color:#d97706;color:#d97706}.validation-category-header{font-size:.95rem;font-weight:700;margin-bottom:10px;padding:10px 12px}.error-header{background:#fee2e2;border-left:4px solid #dc2626;color:#dc2626}.warning-header{background:#fef3c7;border-left:4px solid #d97706;color:#d97706}.validation-messages{margin-left:8px}.validation-error-item{background:#fef2f2;border-left:3px solid #fca5a5;color:#f5c6c6}.validation-error-item,.validation-warning-item{border-radius:4px;font-size:.9rem;line-height:1.5;margin-bottom:6px;padding:8px 12px}.validation-warning-item{background:#fffbeb;border-left:3px solid #fcd34d;color:#92400e}.validation-section-divider{background:linear-gradient(90deg,#e5e7eb,#0000);height:2px}.validation-errors-section{margin-bottom:16px}.validation-warnings-section{margin-top:16px}.validation-panel-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.validation-panel-content{animation:slideUp .3s ease-out;background:#1e1e1e;border:1px solid #333;border-radius:12px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;max-height:85vh;max-width:700px;overflow:hidden;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.validation-panel-header{align-items:center;background:linear-gradient(135deg,#2d2d2d,#1e1e1e);border-bottom:1px solid #333;display:flex;justify-content:space-between;padding:20px 24px}.validation-close-btn{background:#0000;border:none;border-radius:4px;color:#999;cursor:pointer;font-size:24px;line-height:1;padding:4px 8px;transition:all .2s}.validation-close-btn:hover{background:#ffffff1a;color:#fff}.validation-panel-body{max-height:calc(85vh - 150px);overflow-y:auto;padding:24px}.validation-panel-body::-webkit-scrollbar{width:8px}.validation-panel-body::-webkit-scrollbar-track{background:#1e1e1e}.validation-panel-body::-webkit-scrollbar-thumb{background:#444;border-radius:4px}.validation-panel-body::-webkit-scrollbar-thumb:hover{background:#555}.validation-section-title{border-bottom:2px solid;font-size:14px;font-weight:700;letter-spacing:.5px;margin:0 0 16px;padding-bottom:8px}.error-title{border-bottom-color:#ff6b6b4d;color:#ff6b6b}.warning-title{border-bottom-color:#ffd93d4d;color:#ffd93d}.validation-category{margin-bottom:20px}.validation-category:last-child{margin-bottom:0}.validation-category-header{align-items:center;border-radius:6px;display:flex;font-size:13px;font-weight:600;gap:8px;margin-bottom:12px;padding:10px 14px}.error-header{background:#ff6b6b26;border-left:3px solid #ff6b6b;color:#ff6b6b}.warning-header{background:#ffd93d26;border-left:3px solid #ffd93d;color:#ffd93d}.validation-messages{display:flex;flex-direction:column;gap:8px;padding-left:8px}.validation-error-item,.validation-warning-item{border-radius:6px;display:flex;font-size:13px;gap:12px;line-height:1.6;padding:12px 14px;transition:all .2s}.validation-error-item{background:#ff6b6b14;border-left:2px solid #ff6b6b66;color:#ffb3b3}.validation-error-item:hover{background:#ff6b6b1f;border-left-color:#ff6b6b}.validation-warning-item{background:#ffd93d14;border-left:2px solid #ffd93d66;color:#ffe896}.validation-warning-item:hover{background:#ffd93d1f;border-left-color:#ffd93d}.validation-bullet{color:currentColor;flex-shrink:0;font-size:16px;line-height:1.6;opacity:.6}.validation-message-text{flex:1 1}.validation-section-divider{background:linear-gradient(90deg,#0000,#333,#0000);height:1px;margin:24px 0}.validation-success{display:flex;flex-direction:column;gap:12px}.validation-success-item{align-items:center;background:#4cd1371a;border-left:3px solid #4cd137;border-radius:6px;color:#a8e6a1;display:flex;font-size:14px;gap:12px;padding:14px 16px}.validation-success-icon{font-size:18px}.validation-actions{border-top:1px solid #333;display:flex;gap:12px;margin-top:24px;padding-top:20px}.btn-fix-code,.btn-go-to-circuit{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 20px;transition:all .2s}.btn-go-to-circuit{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-go-to-circuit:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.btn-fix-code{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.btn-fix-code:hover{box-shadow:0 6px 20px #f5576c66;transform:translateY(-2px)}.btn-fix-code:active,.btn-go-to-circuit:active{transform:translateY(0)}.actuator-live-values{display:flex;flex-direction:column;gap:6px}.actuator-live-values .value-row{align-items:center;background:#f0f9ff;border-radius:4px;display:flex;justify-content:space-between;padding:6px 8px}.actuator-live-values .value-label{color:#64748b;font-size:13px;font-weight:500;text-transform:capitalize}.actuator-live-values .value-data{color:#0f172a;font-size:14px;font-weight:600}.actuator-live-values .last-update{color:#94a3b8;display:block;font-size:11px;margin-top:4px;text-align:right}.actuator-card .no-data{color:#94a3b8;font-size:13px;font-style:italic}.btn-compile{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:8px 20px;transition:all .2s}.btn-compile.idle{background:#2a2a2a;color:#aaa}.btn-compile.changed{background:#f97316;color:#fff}.btn-compile.compiling{background:#666;color:#fff;cursor:not-allowed}.btn-compile.error{background:#ef4444;color:#fff}.btn-compile.success{background:#22c55e;color:#fff}.btn-run{border:none;border-radius:8px;font-size:14px;font-weight:600;padding:8px 20px;transition:all .2s}.btn-run:enabled{background:#4a9eff;color:#fff;cursor:pointer}.btn-run:disabled{background:#2a2a2a;color:#555;cursor:not-allowed}.btn-run:enabled:hover{background:#3a8eef}.validation-tab-bar{border-bottom:1px solid #2a2a2a;display:flex;flex-wrap:nowrap;gap:4px;min-height:42px;overflow-x:auto;padding:8px 12px 0;scrollbar-color:#444 #0000;scrollbar-width:thin}.validation-tab-bar::-webkit-scrollbar{height:4px}.validation-tab-bar::-webkit-scrollbar-track{background:#0000}.validation-tab-bar::-webkit-scrollbar-thumb{background:#444;border-radius:2px}.validation-tab{align-items:center;background:#2a2a2a;border:none;border-radius:6px 6px 0 0;color:#888;cursor:pointer;display:flex;font-size:12px;gap:6px;padding:6px 12px;white-space:nowrap}.validation-tab.active{background:#1a1a1a;border-bottom:2px solid #4a9eff;color:#fff}.validation-tab.tab-error.active{border-bottom-color:#ef4444}.validation-tab.tab-warning.active{border-bottom-color:#f59e0b}.validation-tab-count{background:#3a3a3a;border-radius:10px;font-size:11px;padding:1px 6px}.validation-tab.active .validation-tab-count{background:#4a4a4a}.validation-download-btn{background:#2a2a2a;border:1px solid #444;border-radius:6px;color:#aaa;cursor:pointer;font-size:13px;padding:6px 12px;transition:all .2s}.validation-download-btn:hover{background:#333;border-color:#666;color:#fff}.simulator-control-bar{align-items:center;border-top:1px solid #1e2d40;display:flex;flex-wrap:wrap;gap:8px;padding:12px 18px}.simulator-control-bar button{border:1px solid #0000!important;border-radius:8px!important;cursor:pointer!important;filter:saturate(.75) brightness(.9)!important;font-family:Segoe UI,system-ui,sans-serif!important;font-size:12px!important;font-weight:600!important;line-height:1.4!important;padding:8px 16px!important;transition:filter .15s ease,opacity .15s ease,box-shadow .15s ease!important;white-space:nowrap!important}.simulator-control-bar button:hover:not(:disabled){box-shadow:0 0 0 1px #ffffff14!important;filter:saturate(.9) brightness(1.05)!important}.simulator-control-bar button:active:not(:disabled){filter:saturate(.8) brightness(.85)!important}.simulator-control-bar button:disabled{cursor:not-allowed!important;filter:saturate(0) brightness(.5)!important;opacity:.5!important}.simulator-control-bar .btn-last-validation{background:#1e2736!important;border:1px solid #2d3f55!important;border-radius:8px!important;color:#94a3b8!important;cursor:pointer!important;filter:none!important;font-size:12px!important;font-weight:600!important;padding:8px 14px!important;transition:background .15s,color .15s!important}.simulator-control-bar .btn-last-validation:hover{background:#243044!important;color:#e2e8f0!important;filter:none!important}.instructor-overview{max-height:calc(100vh - 200px);overflow-y:auto;padding:0 20px;width:100%}@media (max-width:768px){.instructor-overview{padding:0 15px}}@media (max-width:480px){.instructor-overview{padding:0 10px}}.instructor-courses{max-height:calc(100vh - 200px);overflow-y:auto;padding:0 20px;width:100%}@media (max-width:768px){.instructor-courses{padding:0 15px}}@media (max-width:480px){.instructor-courses{padding:0 10px}}.instructor-grading{max-height:calc(100vh - 200px);overflow-y:auto;padding:0 20px;width:100%}@media (max-width:768px){.instructor-grading{padding:0 15px}}@media (max-width:480px){.instructor-grading{padding:0 10px}}.instructor-analytics{max-height:calc(100vh - 200px);overflow-y:auto;padding:0 20px;width:100%}@media (max-width:768px){.instructor-analytics{padding:0 15px}}@media (max-width:480px){.instructor-analytics{padding:0 10px}}.instructor-quick-actions{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:20px}.instructor-quick-actions h3{color:#2d3748;font-size:1.25rem;font-weight:600;margin-top:0}@media (max-width:768px){.instructor-quick-actions{margin-bottom:15px;padding:15px}.instructor-quick-actions h3{font-size:1.1rem;margin-bottom:12px}}@media (max-width:480px){.instructor-quick-actions{margin-bottom:12px;padding:12px}.instructor-quick-actions h3{font-size:1rem;margin-bottom:10px}}.quick-actions-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}@media (max-width:768px){.quick-actions-grid{gap:12px;grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.quick-actions-grid{gap:10px;grid-template-columns:1fr}}.grading-list{display:flex;flex-direction:column;gap:10px}@media (max-width:768px){.grading-list{gap:8px}}@media (max-width:480px){.grading-list{gap:6px}}.no-submissions{color:#718096;font-size:.95rem;font-style:italic;padding:20px}@media (max-width:768px){.no-submissions{font-size:.9rem;padding:15px}}@media (max-width:480px){.no-submissions{font-size:.85rem;padding:12px}}.assignment-badge{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;color:#fff;display:inline-flex;font-size:.75rem;font-weight:600;gap:5px;padding:4px 10px;text-transform:uppercase}@media (max-width:768px){.assignment-badge{font-size:.7rem;padding:3px 8px}}@media (max-width:480px){.assignment-badge{font-size:.65rem;padding:2px 6px}}.notification-toast{animation:slideIn .3s ease-out;border-radius:8px;box-shadow:0 4px 12px #00000026;font-weight:600;padding:16px 24px;z-index:1000}.notification-icon{font-size:20px}@media (max-width:768px){.notification-toast{font-size:14px;left:10px;padding:12px 16px;right:10px;top:10px}}.grading-category{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:30px;max-width:90%;min-width:80%;overflow:hidden;padding:20px}@media (max-width:768px){.grading-category{padding:15px}}@media (max-width:480px){.grading-category{padding:12px}}.grading-category-header h3{color:#111827;font-size:20px;font-weight:700;margin-bottom:15px}@media (max-width:768px){.grading-category-header h3{font-size:1rem}}@media (max-width:480px){.grading-category-header h3{font-size:.95rem}}.grading-categories{display:flex;flex-direction:column;gap:20px}@media (max-width:768px){.grading-categories{gap:15px}}@media (max-width:480px){.grading-categories{gap:12px}}.grading-category-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:15px}@media (max-width:768px){.grading-category-header{margin-bottom:12px;padding-bottom:12px}}@media (max-width:480px){.grading-category-header{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:10px;padding-bottom:10px}}.grading-item-card{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:15px;overflow:hidden;width:100%}.grading-item-header{align-items:center;background:#f9fafb;cursor:pointer;display:flex;justify-content:space-between;padding:15px 20px;transition:background-color .2s}.grading-item-header.expanded{background:#f0f9ff}.grading-item-title{align-items:center;display:flex;gap:10px}.grading-item-title .expand-icon{font-size:18px}.grading-item-title strong{font-size:16px}.grading-item-meta{color:#6b7280;font-size:13px;margin-left:28px;margin-top:5px}.grading-item-meta .pending-count{color:#f59e0b;font-weight:600}.grading-item-meta .graded-count{color:#10b981;font-weight:600}@media (max-width:768px){.grading-item-header{align-items:flex-start;flex-direction:column;gap:8px;padding:12px 15px}.grading-item-title strong{font-size:14px}.grading-item-meta{font-size:12px;margin-left:0}}.submissions-table-container{-webkit-overflow-scrolling:touch;background:#fff;overflow-x:auto}.submissions-table{border-collapse:collapse;min-width:900px;width:100%}.submissions-table thead{background:#f3f4f6}.submissions-table th{border-bottom:2px solid #e5e7eb;font-size:14px;font-weight:600;padding:12px 16px;text-align:left}.submissions-table th.center{text-align:center}.submissions-table tbody tr{background:#fff;border-bottom:1px solid #f3f4f6}.submissions-table tbody tr.has-changes{background:#fef3c7}.submissions-table td{padding:12px 16px}.student-info{color:#111827;font-weight:600}.student-login{color:#6b7280;font-size:12px;margin-top:2px}.submission-time{color:#4b5563;font-size:14px}.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.status-badge.graded{background:#d1fae5;color:#065f46}.status-badge.pending{background:#fef3c7;color:#92400e}@media (max-width:1024px){.submissions-table{min-width:900px}}@media (max-width:768px){.submissions-table{min-width:800px}.submissions-table td,.submissions-table th{font-size:13px;padding:8px 12px}.status-badge{font-size:11px;padding:3px 8px}}.grade-input,.max-grade-input{font-size:14px;text-align:center;width:60px}.feedback-input,.grade-input,.max-grade-input{border:1px solid #d1d5db;border-radius:4px;padding:6px 8px}.feedback-input{font-size:13px;width:150px}.view-details-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:6px 16px;transition:background-color .2s}.view-details-btn:hover{background:#5568d3}@media (max-width:768px){.grade-input,.max-grade-input{font-size:13px;padding:4px 6px;width:50px}.feedback-input{font-size:12px;padding:4px 6px;width:120px}.view-details-btn{font-size:12px;padding:4px 12px}}.btn-edit{background:#667eea;border-radius:6px;font-size:14px;padding:8px 16px;transition:background-color .2s}.btn-edit:hover{background:#5568d3}@media (max-width:768px){.btn-edit{font-size:13px;padding:6px 12px}}.close-button{align-items:center;background-color:#991b1b;border:none;border-radius:6px;color:#eff1f5;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;position:relative;transition:all .3s ease;width:32px}.close-button:hover{background:#fee2e2;color:#dc2626;transform:rotate(90deg)}.close-button:active{transform:rotate(90deg) scale(.95)}.refresh-button{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;position:relative;transition:all .3s ease;width:32px}.refresh-button:hover{transform:rotate(90deg)}.refresh-button:active{transform:rotate(90deg) scale(.95)}.submission-details h4{font-size:16px;margin-bottom:10px}.code-preview{background:#f3f4f6;border-radius:6px;padding:15px}.code-preview pre{background:#1f2937;border-radius:4px;color:#fff;margin-top:10px;overflow:auto;padding:10px}.attachments-list ul{padding-left:20px}.form-group label{margin-bottom:5px}.form-group input,.form-group textarea{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:10px;width:100%}.form-group textarea{min-height:100px;resize:vertical}.modal-actions{gap:10px}.btn-cancel{background:#6b7280;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:background-color .2s}.btn-cancel:hover{background:#4b5563}.btn-submit{background:#10b981;border:none;border-radius:6px;cursor:pointer;font-weight:600;padding:10px 20px;transition:background-color .2s}.btn-submit:hover{background:#059669}@media (max-width:768px){.modal-body{padding:20px}.submission-info-card{padding:12px}.submission-info-card h3{font-size:16px}.modal-actions{flex-direction:column-reverse}.btn-cancel,.btn-submit{width:100%}}.no-submissions{background:#f9fafb;border-radius:8px;color:#6b7280;font-size:16px;margin-top:10px;padding:40px;text-align:center}@media (max-width:768px){.no-submissions{font-size:14px;padding:30px 20px}}.bulk-grading-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px}@media (max-width:768px){.bulk-grading-header{align-items:stretch;flex-direction:column;gap:10px}}.instructor-quick-actions h3{color:#111827;font-size:20px;font-weight:700;margin-bottom:15px}.session-info{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.session-info p{color:#4b5563;line-height:1.6}@media (max-width:768px){.instructor-quick-actions h3{font-size:18px}.session-info{padding:15px}}.text-center{text-align:center}.text-left{text-align:left}.mb-20{margin-bottom:20px}@media (max-width:768px){.mb-20{margin-bottom:15px}}.modal-body-scrollable{max-height:70vh}@media (max-width:768px){.modal-body-scrollable{max-height:80vh}}.content-modal-list{display:flex;flex-direction:column;gap:20px}.content-modal-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:20px;transition:box-shadow .2s}.content-modal-item:hover{box-shadow:0 4px 12px #00000014}@media (max-width:768px){.content-modal-item{padding:15px}}.content-modal-header{align-items:flex-start;border-bottom:2px solid #f3f4f6;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:15px}.content-modal-header h3{color:#111827;flex:1 1;font-size:18px;font-weight:700;margin:0}@media (max-width:1024px){.content-modal-header{flex-direction:column;gap:12px}}@media (max-width:768px){.content-modal-header h3{font-size:16px}}.content-badges{grid-gap:8px;align-items:center;display:grid;gap:8px}.content-badge{align-items:center;background:linear-gradient(135deg,#f8f9fa,#dad6dd);border-radius:6px;color:#201f1f;display:inline-flex;font-size:13px;font-weight:500;gap:5px;padding:6px 12px;white-space:nowrap}.date-value{background:#fff3;border-radius:4px;font-weight:600;margin-left:4px;padding:2px 8px}.date-icon{font-size:14px}@media (max-width:1024px){.content-badges{width:100%}}@media (max-width:768px){.content-badges{gap:6px}.content-badge{font-size:11px;padding:3px 10px}}.content-modal-meta{background:#f9fafb;border-radius:6px;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:15px;padding:12px 16px}@media (max-width:1024px){.content-modal-meta{gap:15px}}@media (max-width:768px){.content-modal-meta{flex-direction:column;gap:8px;padding:10px 12px}}.content-modal-section{margin-bottom:20px}.content-modal-section:last-child{margin-bottom:0}.content-modal-section h4{color:#374151;font-size:15px;font-weight:600;margin-bottom:8px}.content-text{color:#4b5563;font-size:14px;line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.content-link{background:#eff6ff;border-radius:6px;color:#3b82f6;display:inline-block;font-size:14px;padding:8px 16px;text-decoration:none;transition:background-color .2s}.content-link:hover{background:#dbeafe;text-decoration:underline}@media (max-width:768px){.content-modal-section h4{font-size:14px}.content-text{font-size:13px}}.no-content-message{background:#f9fafb;border-radius:8px;color:#9ca3af;font-size:16px;padding:40px;text-align:center}@media (max-width:768px){.no-content-message{font-size:14px;padding:30px 20px}}.questions-list{display:flex;flex-direction:column;gap:20px}.question-item{background:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:20px;position:relative}.question-id-points{align-items:center;display:flex;font-size:13px;justify-content:space-between;margin-bottom:12px}.question-id{color:#6b7280;font-weight:600}.question-points-badge{background:#fef3c7;border-radius:12px;color:#92400e;font-size:12px;font-weight:700;padding:4px 12px}.question-text{font-size:14px;font-weight:600;margin:12px 0}.question-type-badge{background:#e0e7ff;border-radius:12px;color:#4338ca;display:inline-block;font-size:12px;font-weight:600;margin-bottom:16px;padding:4px 12px;text-transform:capitalize}.question-options{margin-top:16px}.options-label{color:#374151;font-size:14px;margin-bottom:8px}.option-item{align-items:center;background:#f9fafb;border:2px solid #e5e7eb;border-radius:6px;display:flex;gap:12px;margin-bottom:8px;padding:12px 16px;transition:all .2s}.option-item.correct-option{background:#d1fae5;border-color:#10b981}.option-label{color:#6b7280;font-size:15px;font-weight:700;min-width:28px}.option-text{color:#374151;flex:1 1;font-size:13px}.correct-badge{border-radius:12px;font-size:11px;font-weight:700;margin-left:auto;padding:4px 12px}.question-answer-box{background:#f0f9ff;border:2px solid #3b82f6;border-radius:6px;margin-top:16px;padding:16px}.question-answer-box strong{color:#1e40af;display:block;font-size:14px;margin-bottom:8px}.answer-value{color:#1e3a8a;font-size:15px;font-weight:600;line-height:1.6;margin:0}.answer-value.code-answer,.answer-value.essay-answer{font-weight:400;white-space:pre-wrap}.question-explanation{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:4px;margin-top:16px;padding:12px 16px}.question-explanation strong{color:#92400e;display:block;font-size:13px;margin-bottom:6px}.question-explanation p{color:#78350f;font-size:14px;line-height:1.5;margin:0}@media (max-width:768px){.question-item{padding:16px}.question-text{font-size:15px}.question-id-points{align-items:flex-start;flex-direction:column;gap:8px}.option-item{padding:10px 12px}.option-label{font-size:14px;min-width:24px}.option-text{font-size:13px}.answer-value{font-size:14px}}.edit-mode-badge{background:#fef3c7;border-radius:12px;color:#92400e;font-size:14px;font-weight:600;margin-left:12px;margin-top:20px;padding:4px 12px}.btn-cancel-edit,.btn-save-edit{border-radius:6px;font-size:14px;padding:8px 16px;transition:background-color .2s}.btn-save-edit{background:#10b981}.btn-save-edit:hover{background:#059669}.edit-field{display:flex;flex-direction:column;margin-bottom:15px;min-width:170px}.edit-field label{color:#495057;display:block;font-size:14px;font-weight:500;margin-bottom:6px}.edit-input{border:2px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.edit-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.edit-textarea{border:2px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.edit-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.content-modal-item.edit-mode{background:#fef3c7;border-color:#f59e0b}.requirement-row{display:flex}.x-btn{background-color:#c10b14;border:none;border-radius:4px}.x-btn :hover{background:#c9d4e4;transform:translateY(-1px)}@media (max-width:768px){.edit-mode-badge{display:block;margin-left:0;margin-top:8px;width:-webkit-fit-content;width:fit-content}.btn-cancel-edit,.btn-save-edit{font-size:13px;padding:6px 12px}.edit-input,.edit-textarea{font-size:13px;padding:8px 10px}}.item-list{display:flex;flex-direction:column;gap:16px}.list-item-card{align-items:center;background:#fff;border:2px solid #e5e7eb;border-radius:8px;display:flex;justify-content:space-between;padding:20px;transition:all .2s}.list-item-card:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea1a}.list-item-info{flex:1 1}.list-item-info h3{color:#111827;font-size:16px;font-weight:700;margin:0 0 8px}.item-meta{color:#6b7280;font-size:13px;margin:0}.list-item-actions{display:flex;flex-direction:column;gap:10px}.btn-add-item{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:background-color .2s}.btn-add-item:hover{background:#059669}.btn-view-item{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:background-color .2s}.btn-view-item:hover{background:#5568d3}.btn-delete-item{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:background-color .2s}.btn-delete-item:hover{background:#dc2626}@media (max-width:768px){.list-item-card{flex-direction:column;gap:12px;padding:16px}.list-item-actions{width:100%}.btn-delete-item,.btn-view-item{flex:1 1}}.edit-mode-badge{background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:20px;color:#fff;display:inline-block;font-size:.85rem;font-weight:500;margin-left:15px;padding:5px 12px}.edit-input,.edit-select,.edit-textarea{border:2px solid #e5e7eb;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:.95rem;padding:10px 13px;width:100%}.edit-input:focus,.edit-select:focus,.edit-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.edit-textarea{min-height:80px}.edit-questions-section{border-top:2px solid #e5e7eb;margin-top:30px;padding-top:30px}.edit-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.edit-section-header h4{color:#1f2937;font-size:1.1rem;margin:0}.edit-question-card{background:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;margin-bottom:20px;padding:20px;transition:all .2s ease}.edit-question-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f61a}.edit-question-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.btn-add-option,.btn-add-question{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;box-shadow:0 2px 4px #10b98133;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .2s ease}.btn-add-option:hover,.btn-add-question:hover{box-shadow:0 4px 12px #10b9814d;transform:translateY(-2px)}.btn-remove-option,.btn-remove-question{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .2s ease}.btn-remove-option:hover,.btn-remove-question:hover{box-shadow:0 2px 8px #ef44444d;transform:translateY(-1px)}.btn-cancel-edit{background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-right:10px;padding:10px 24px;transition:all .2s ease}.btn-cancel-edit:hover{background:#4b5563;transform:translateY(-1px)}.btn-save-edit{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;box-shadow:0 2px 8px #10b98133;color:#fff;cursor:pointer;font-weight:600;padding:10px 24px;transition:all .2s ease}.btn-save-edit:hover{box-shadow:0 4px 12px #10b9814d;transform:translateY(-2px)}.btn-edit{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-right:10px;padding:8px 20px;transition:all .2s ease}.btn-edit:hover{box-shadow:0 2px 8px #3b82f64d;transform:translateY(-1px)}.edit-options-section{background:#fff;border:2px solid #e5e7eb;border-radius:8px;margin:15px 0;padding:15px}.edit-option-row{align-items:center;display:flex;gap:10px;margin-bottom:12px}.option-letter{color:#374151;font-size:.95rem;font-weight:700;min-width:25px}.edit-input-option{border:2px solid #e5e7eb;border-radius:6px;flex:1 1;font-size:.9rem;padding:10px 12px;transition:all .2s ease}.edit-input-option:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.modal-body-scrollable{max-height:calc(85vh - 120px);overflow-y:auto;padding-right:10px}.modal-body-scrollable::-webkit-scrollbar{width:8px}.modal-body-scrollable::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.modal-body-scrollable::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal-body-scrollable::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (max-width:768px){.edit-section-header{gap:15px}.edit-question-header,.edit-section-header{align-items:flex-start;flex-direction:column}.edit-question-header{gap:10px}.btn-cancel-edit,.btn-edit,.btn-save-edit{margin:5px 0;width:100%}}.student-avatar-small{border-radius:50%;height:32px;margin-right:10px;object-fit:cover;vertical-align:middle;width:32px}.student-info{align-items:center;display:flex;gap:10px;white-space:nowrap}.student-id{color:#6366f1;font-family:Courier New,monospace;font-size:.8rem;font-weight:600}.student-email{color:#64748b;font-size:.9rem}.grade-display{align-items:center;display:flex;flex-direction:column;gap:4px}.grade-display strong{color:#1e293b;font-size:1.1rem}.letter-grade{background:linear-gradient(135deg,#10b981,#059669);border-radius:4px;color:#fff;display:inline-block;font-size:.75rem;font-weight:600;padding:2px 8px}.no-grade{color:#94a3b8;font-style:italic}.progress-fraction{color:#475569;font-size:.95rem;font-weight:600}.last-activity{color:#64748b;font-size:.85rem}@media (max-width:1024px){.student-avatar-small{height:28px;width:28px}.student-info{gap:8px}.student-email{font-size:.85rem}.grade-display strong{font-size:1rem}.progress-fraction{font-size:.9rem}.last-activity{font-size:.8rem}}@media (max-width:768px){.student-avatar-small{height:24px;margin-right:6px;width:24px}.student-info{font-size:.9rem;gap:6px}.student-id{font-size:.75rem}.student-email{font-size:.8rem}.grade-display strong{font-size:.95rem}.letter-grade{font-size:.7rem;padding:1px 6px}.progress-fraction{font-size:.85rem}.last-activity{font-size:.75rem}.submissions-table td,.submissions-table th{font-size:.85rem;padding:8px 6px}}@media (max-width:480px){.student-avatar-small{height:20px;width:20px}.student-info{align-items:flex-start;flex-direction:column;gap:2px}.submissions-table td,.submissions-table th{font-size:.8rem;padding:6px 4px}.grade-display{gap:2px}.grade-display strong{font-size:.9rem}.letter-grade{font-size:.65rem}}.content-layout-container{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 320px}.content-right-column{display:flex;flex-direction:column;gap:12px;width:60%}.content-cards-title{color:#1e293b;font-size:1.2rem;font-weight:600;margin-bottom:8px}.content-cards-vertical{display:flex;flex-direction:column;gap:12px}.content-cards-vertical .stat-card{align-items:center;display:flex;gap:12px;min-height:70px;padding:12px 16px;width:100%}.content-cards-vertical .stat-icon{font-size:1.8rem;min-width:40px;text-align:center}.content-cards-vertical .stat-info{flex:1 1}.content-cards-vertical .stat-info h3{font-size:1.5rem;margin-bottom:2px}.content-cards-vertical .stat-info p{font-size:.85rem;margin:0}@media (max-width:1024px){.content-layout-container{gap:20px;grid-template-columns:1fr 280px}.content-cards-vertical,.content-right-column{gap:10px}.content-cards-vertical .stat-card{min-height:65px;padding:10px 14px}.content-cards-vertical .stat-icon{font-size:1.6rem;min-width:36px}.content-cards-vertical .stat-info h3{font-size:1.3rem}.content-cards-vertical .stat-info p{font-size:.8rem}}@media (max-width:768px){.content-layout-container{gap:20px;grid-template-columns:1fr}.content-right-column{order:-1}.content-cards-title{font-size:1.1rem}.content-cards-vertical{gap:10px}.content-cards-vertical .stat-card{min-height:60px;padding:10px 12px}.content-cards-vertical .stat-icon{font-size:1.5rem;min-width:32px}.content-cards-vertical .stat-info h3{font-size:1.2rem}.content-cards-vertical .stat-info p{font-size:.8rem}}@media (max-width:480px){.content-layout-container{gap:15px}.content-cards-title{font-size:1rem;margin-bottom:6px}.content-cards-vertical{gap:8px}.content-cards-vertical .stat-card{gap:10px;min-height:55px;padding:8px 10px}.content-cards-vertical .stat-icon{font-size:1.3rem;min-width:28px}.content-cards-vertical .stat-info h3{font-size:1.1rem}.content-cards-vertical .stat-info p{font-size:.75rem}}.course-section-title{align-items:center;color:#1e293b;display:flex;font-size:1.4rem;font-weight:700;gap:8px;margin-bottom:20px}.course-meta-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin-bottom:24px}.course-meta-item{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;padding:12px;transition:all .2s ease}.course-meta-item:hover{background:#f3f4f6;border-color:#d1d5db;transform:translateY(-1px)}.meta-icon{font-size:1.5rem;min-width:32px;text-align:center}.meta-content{display:flex;flex-direction:column;gap:2px}.meta-label{color:#64748b;font-size:.75rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.meta-value{color:#1e293b;font-size:.75rem;font-weight:600}.course-description-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;color:#fff;padding:20px}.description-title{color:#fff;font-size:1.1rem;font-weight:700;margin-bottom:10px}.description-text{color:#fffffff2;font-size:.95rem;line-height:1.6;margin:0}.card-header{align-items:center;display:flex;gap:10px;margin-bottom:16px}.card-icon{font-size:1.5rem}.card-title{color:#1e293b;font-size:1.1rem;font-weight:700;margin:0}.tags-container{display:flex;flex-wrap:wrap;gap:10px}.info-tag{border-radius:20px;cursor:default;display:inline-block;font-size:.85rem;font-weight:600;padding:8px 16px;transition:all .2s ease}.prerequisite-tag{background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 2px 4px #fbbf244d;color:#fff}.prerequisite-tag:hover{box-shadow:0 4px 8px #fbbf2466;transform:translateY(-2px)}.course-tag{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 2px 4px #3b82f64d;color:#fff}.course-tag:hover{box-shadow:0 4px 8px #3b82f666;transform:translateY(-2px)}.empty-message{color:#94a3b8;font-size:.9rem;font-style:italic;margin:0}@media (max-width:1024px){.course-section-title{font-size:1.3rem}.course-meta-grid{gap:12px}.course-meta-item{padding:10px}.meta-icon{font-size:1.3rem;min-width:28px}.meta-label,.meta-value{font-size:.7rem}}@media (max-width:768px){.course-section-title{font-size:1.2rem;margin-bottom:16px}.course-meta-grid{gap:10px;grid-template-columns:1fr;margin-bottom:20px}.course-meta-item{padding:12px}.course-description-section{padding:16px}.description-title{font-size:1rem}.description-text{font-size:.9rem}.card-title{font-size:1rem}.info-tag{font-size:.8rem;padding:6px 12px}}@media (max-width:480px){.course-section-title{font-size:1.1rem}.course-meta-item{gap:10px;padding:10px}.meta-icon{font-size:1.2rem;min-width:24px}.meta-label,.meta-value{font-size:.65rem}.course-description-section{padding:14px}.description-title{font-size:.95rem}.description-text{font-size:.85rem}.info-tag{font-size:.75rem;padding:5px 10px}}.table-header-preview{grid-gap:10px;background:#f9fafb;border-bottom:1px solid #e5e7eb;border-top:1px solid #e5e7eb;color:#64748b;display:grid;font-size:.85rem;font-weight:600;gap:10px;grid-template-columns:2fr 1fr 1fr .8fr .8fr 1.5fr 1fr;letter-spacing:.5px;padding:12px 16px;text-transform:uppercase}.preview-column{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.preview-column:nth-child(3),.preview-column:nth-child(4),.preview-column:nth-child(5),.preview-column:nth-child(7){text-align:center}.grading-item-card:not(:has(.submissions-table-container)){cursor:pointer;transition:all .2s ease}.grading-item-card:not(:has(.submissions-table-container)):hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-2px)}.grading-item-card:not(:has(.submissions-table-container)):hover .table-header-preview{background:#f3f4f6}@media (max-width:1024px){.table-header-preview{font-size:.8rem;gap:8px;grid-template-columns:2fr 1fr 1fr .7fr .7fr 1.2fr .9fr;padding:10px 14px}}@media (max-width:768px){.table-header-preview{font-size:.75rem;gap:8px;grid-template-columns:2fr 1fr 1fr;padding:10px 12px}.preview-column:nth-child(5),.preview-column:nth-child(6),.preview-column:nth-child(7){display:none}}@media (max-width:480px){.table-header-preview{font-size:.7rem;gap:6px;grid-template-columns:2fr 1fr;padding:8px 10px}.preview-column:nth-child(3),.preview-column:nth-child(4),.preview-column:nth-child(5),.preview-column:nth-child(6),.preview-column:nth-child(7){display:none}}.submission-info-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;margin-bottom:20px;padding:20px}.submission-info-card h3{font-size:20px;font-weight:600;margin:0 0 15px}.submission-info-card p{color:#fff;font-size:14px;margin:8px 0}.submission-info-card .status-badge{border-radius:12px;display:inline-block;font-size:13px;font-weight:600;margin-left:8px;padding:4px 12px}.submission-info-card .status-badge.graded{background:#10b981;color:#fff}.submission-info-card .status-badge.pending{background:#f59e0b;color:#fff}.submission-details{background:#f9fafb;border-radius:12px;margin-bottom:20px;padding:20px}.submission-details h4{border-bottom:2px solid #e5e7eb;color:#111827;font-size:18px;font-weight:600;margin:0 0 15px;padding-bottom:10px}.code-preview{margin:15px 0}.code-preview p{color:#374151;font-weight:600;margin-bottom:10px}.code-block{background:#1f2937;border-radius:8px;color:#f3f4f6;font-family:Courier New,monospace;font-size:14px;line-height:1.6;max-height:400px;overflow-x:auto;overflow-y:auto;padding:20px}.attachments-section,.screenshots-section{margin-top:20px}.attachments-section p,.screenshots-section p{color:#374151;font-weight:600;margin-bottom:10px}.attachments-list{list-style:none;margin:0;padding:0}.attachment-item{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-size:14px;margin-bottom:8px;padding:10px 15px}.answers-review{margin-top:15px}.answer-review-card{background:#fff;border:2px solid #e5e7eb;border-radius:12px;margin-bottom:20px;padding:20px}.answer-header{align-items:center;border-bottom:2px solid #f3f4f6;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.points-badge{background:#f3f4f6;border-radius:12px;color:#374151;font-size:14px;font-weight:600;padding:6px 12px}.question-text{color:#111827;font-size:15px;line-height:1.6;margin:15px 0}.answer-comparison{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;margin:15px 0}@media (max-width:768px){.answer-comparison{grid-template-columns:1fr}}.correct-answer-box,.student-answer-box{border:2px solid #e5e7eb;border-radius:8px;padding:15px}.student-answer-box{background:#eff6ff;border-color:#3b82f6}.correct-answer-box{border-color:#10b981}.correct-answer-box strong,.student-answer-box strong{color:#374151;display:block;font-size:13px;margin-bottom:8px}.correct-answer-box p,.student-answer-box p{color:#111827;line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.answer-status{display:flex;gap:10px;margin-top:15px}.correct-badge,.incorrect-badge,.pending-badge{border-radius:12px;font-size:13px;font-weight:600;padding:6px 14px}.correct-badge{background:#10b981;color:#fff}.incorrect-badge{background:#ef4444;color:#fff}.pending-badge{background:#f59e0b;color:#fff}.capstone-details{margin-top:15px}.detail-row{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;padding:15px}.detail-row strong{color:#374151;display:block;font-size:13px;margin-bottom:8px}.detail-row p{color:#111827;line-height:1.6;margin:0}.detail-row .link{color:#3b82f6;text-decoration:none;word-break:break-all}.detail-row .link:hover{text-decoration:underline}.grading-form{background:#fff;border:2px solid #e5e7eb;border-radius:12px;padding:20px}.grading-form h4{color:#111827;font-size:18px;font-weight:600;margin:0 0 20px}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;margin-bottom:15px}@media (max-width:768px){.form-row{grid-template-columns:1fr}}.form-group{margin-bottom:15px}.form-group label{display:block;font-size:14px;margin-bottom:8px}.grade-input-form{border:2px solid #e5e7eb;border-radius:8px;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.grade-input-form:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.grade-input-form:read-only{background:#f3f4f6;color:#6b7280}.feedback-textarea{border:2px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:14px;line-height:1.6;padding:12px;resize:vertical;transition:border-color .2s;width:100%}.feedback-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.btn-cancel,.btn-submit{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s}.btn-cancel{background:#f3f4f6;color:#374151}.btn-cancel:hover{background:#e5e7eb}.btn-submit{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-submit:hover{box-shadow:0 4px 6px #10b9814d;transform:translateY(-2px)}.per-question-grading{background:#f8f9fa;border:2px dashed #667eea;border-radius:8px;margin-top:20px;padding:20px}.grading-field-row{display:flex;gap:15px;margin-bottom:15px}.grading-field{display:flex;flex:1 1;flex-direction:column}.grading-field label{align-items:center;color:#374151;display:flex;font-size:14px;font-weight:600;margin-bottom:8px}.points-input,.points-input-readonly{border:2px solid #e5e7eb;border-radius:6px;font-size:14px;font-weight:500;padding:10px 12px;transition:all .2s ease}.points-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.points-input-readonly{background-color:#f3f4f6;color:#6b7280;cursor:not-allowed}.question-feedback-textarea{border:2px solid #e5e7eb;border-radius:6px;font-family:inherit;font-size:14px;min-height:80px;padding:12px;resize:vertical;transition:all .2s ease;width:100%}.question-feedback-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.question-feedback-textarea::placeholder{color:#9ca3af}.existing-feedback-box{background:#eff6ff;border-left:4px solid #3b82f6;border-radius:6px;margin-top:15px;padding:15px}.existing-feedback-box strong{color:#1e40af;display:block;font-size:14px;margin-bottom:8px}.existing-feedback-box p{color:#1e3a8a;line-height:1.6;margin:0}.question-explanation-box{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:6px;margin-top:15px;padding:15px}.question-explanation-box strong{color:#92400e;display:block;font-size:14px;margin-bottom:8px}.question-explanation-box p{color:#78350f;line-height:1.6;margin:0}.answer-comparison{display:flex;flex-direction:column;gap:12px;margin-top:15px}.correct-answer-box,.student-answer-box{border:2px solid;border-radius:6px;padding:12px 15px}.student-answer-box{background:#fef2f2;border-color:#fca5a5}.student-answer-box strong{color:#991b1b;display:block;font-size:13px;margin-bottom:6px}.student-answer-box .answer-text{color:#7f1d1d;line-height:1.5;margin:0}.correct-answer-box{background:#f0fdf4;border-color:#86efac}.correct-answer-box strong{color:#166534;display:block;font-size:13px;margin-bottom:6px}.correct-answer-box .answer-text{color:#14532d;line-height:1.5;margin:0}@media (max-width:768px){.grading-field-row{flex-direction:column;gap:10px}.per-question-grading{padding:15px}}.student-attachments-section{background-color:#f8f9fa;border-radius:8px;margin-top:15px;padding:15px}.attachments-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.attachment-download-btn{background-color:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.attachment-download-btn:hover{background-color:#5568d3}.grading-scheme-container{display:flex;flex-direction:column;gap:20px}.grading-category-section{border-left:3px solid #667eea;border-left:3px solid var(--primary-color,#667eea);padding-left:15px}.grading-category-title{color:#1a202c;color:var(--text-primary,#1a202c);font-size:1rem;font-weight:600;margin-bottom:10px}.grading-item-row{align-items:center;background:#f7fafc;background:var(--bg-secondary,#f7fafc);border-radius:6px;display:flex;justify-content:space-between;margin-bottom:8px;padding:10px;transition:all .2s ease}.grading-item-row:hover{background:#edf2f7;background:var(--bg-hover,#edf2f7)}.grading-item-info{display:flex;flex-direction:column;gap:4px}.grading-item-id{color:#718096;color:var(--text-secondary,#718096);font-size:.75rem;font-weight:600}.grading-item-title{color:#2d3748;color:var(--text-primary,#2d3748);font-size:.875rem}.grading-item-weight,.weight-display{align-items:center;display:flex;gap:8px}.weight-value{color:#667eea;color:var(--primary-color,#667eea);font-size:1rem;font-weight:600;min-width:50px;text-align:right}.weight-edit-btn{background:#0000;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;padding:4px 8px;transition:background .2s ease}.weight-edit-btn:hover{background:#e2e8f0;background:var(--bg-hover,#e2e8f0)}.weight-edit-inline{align-items:center;display:flex;gap:6px}.weight-input{border:2px solid #667eea;border:2px solid var(--primary-color,#667eea);border-radius:4px;font-size:.875rem;padding:4px 8px;text-align:right;width:70px}.weight-percent{color:#718096;color:var(--text-secondary,#718096);font-size:.875rem}.weight-cancel-btn,.weight-save-btn{border:none;border-radius:4px;cursor:pointer;font-size:.875rem;padding:4px 8px;transition:all .2s ease}.weight-save-btn{background:#10b981;background:var(--success-color,#10b981);color:#fff}.weight-save-btn:hover{background:#059669;background:var(--success-hover,#059669)}.weight-cancel-btn{background:#ef4444;background:var(--error-color,#ef4444);color:#fff}.weight-cancel-btn:hover{background:#dc2626;background:var(--error-hover,#dc2626)}.grading-total-row{align-items:center;border-top:2px solid #e2e8f0;border-top:2px solid var(--border-color,#e2e8f0);display:flex;font-size:1.1rem;font-weight:700;justify-content:space-between;margin-top:10px;padding:15px}.grading-total-label{color:#2d3748;color:var(--text-primary,#2d3748)}.grading-total-value{font-size:1.25rem}.grading-total-value.valid{color:#10b981;color:var(--success-color,#10b981)}.grading-total-value.invalid{color:#ef4444;color:var(--error-color,#ef4444)}.grading-warning{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:4px;color:#92400e;font-size:.875rem;padding:10px}.announcements-container{padding:20px}.announcements-layout{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr}.announcement-create-section,.announcement-history-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:25px}.announcement-form{gap:20px}.announcement-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#374151;font-weight:600}.form-input,.form-select,.form-textarea{border:1px solid #d1d5db;border-radius:8px;font-size:14px;padding:10px 12px}.form-textarea{font-family:inherit;resize:vertical}.send-announcement-btn{background:#0ea5e9;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:background .2s}.send-announcement-btn:hover:not(:disabled){background:#0284c7}.send-announcement-btn:disabled{cursor:not-allowed;opacity:.6}.announcements-list{display:flex;flex-direction:column;gap:15px;max-height:600px;overflow-y:auto}.announcement-card{border:1px solid #e5e7eb;border-radius:8px;padding:16px;transition:box-shadow .2s}.announcement-card:hover{box-shadow:0 4px 12px #0000001a}.announcement-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.announcement-header h4{color:#1f2937;margin:0}.priority-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.priority-badge.low{background:#dbeafe;color:#1e40af}.priority-badge.medium{background:#fef3c7;color:#92400e}.priority-badge.high{background:#fed7aa;color:#9a3412}.priority-badge.urgent{background:#fee2e2;color:#991b1b}.announcement-body{color:#4b5563;line-height:1.6;margin:10px 0}.announcement-footer{align-items:center;border-top:1px solid #f3f4f6;color:#6b7280;display:flex;font-size:13px;justify-content:space-between;margin-top:12px;padding-top:12px}.no-announcements{color:#9ca3af;padding:40px;text-align:center}.iot-requirements-box{background:linear-gradient(135deg,#e0f2fe,#dbeafe);border:2px solid #3b82f6;border-radius:12px;box-shadow:0 4px 6px #3b82f61a;margin:20px 0;overflow:hidden;padding:20px;position:relative}.iot-requirements-box:before{background:linear-gradient(180deg,#3b82f6,#2563eb);content:"";height:100%;left:0;position:absolute;top:0;width:4px}.iot-requirements-box strong{color:#1e40af;font-size:16px;font-weight:600;letter-spacing:.3px;margin-bottom:15px;padding-left:8px}.iot-requirements-list li{align-items:center;border:1px solid #bfdbfe;border-radius:8px;color:#1e293b;display:flex;font-size:14px;justify-content:space-between;line-height:1.6;margin-bottom:10px;padding:14px 16px 14px 40px;position:relative;transition:all .3s ease}.iot-requirements-list li:last-child{margin-bottom:0}.iot-requirements-list li:before{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border-radius:50%;color:#fff;content:"✓";display:flex;font-size:11px;font-weight:700;height:20px;justify-content:center;transform:translateY(-50%);width:20px}.iot-requirements-list li:hover{background:#f0f9ff;border-color:#3b82f6;box-shadow:0 2px 8px #3b82f626;transform:translateX(4px)}.requirement-points{background:linear-gradient(135deg,#77e57d,#37e14e);border-radius:20px;box-shadow:0 2px 4px #3b82f633;color:#fff;font-size:13px;font-weight:600;margin-left:10px;padding:4px 12px;white-space:nowrap}.iot-requirements-preview{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px dashed #22c55e;border-radius:8px;margin-top:12px;padding:16px}.iot-requirements-preview strong{color:#15803d;display:block;font-size:14px;margin-bottom:10px}.iot-requirements-preview ul{list-style:none;margin:0;padding:0}.iot-requirements-preview li{align-items:center;background:#fff;border:1px solid #bbf7d0;border-radius:6px;color:#166534;display:flex;font-size:13px;justify-content:space-between;margin-bottom:8px;padding:10px 12px}.iot-requirements-preview li:last-child{margin-bottom:0}.iot-requirements-preview li span{color:#16a34a;font-size:12px;font-weight:600}.questions-preview-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:16px 0;padding:16px}.questions-preview-section>strong{color:#334155;display:block;font-size:15px;margin-bottom:12px}.question-preview-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;padding:12px}.question-preview-item:last-child{margin-bottom:0}.question-preview-number{background:#3b82f6;border-radius:4px;color:#fff;font-size:13px;font-weight:600;padding:4px 10px}.question-preview-type{color:#64748b;font-size:13px;font-weight:600;text-transform:capitalize}.question-preview-points{color:#10b981;font-size:13px;font-weight:600;margin-left:auto}@media (max-width:768px){.iot-requirements-box{padding:16px}.iot-requirements-list li{align-items:flex-start;flex-direction:column;padding-left:16px;padding-top:40px}.iot-requirements-list li:before{left:50%;top:12px;transform:translateX(-50%)}.requirement-points{margin-left:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.iot-requirements-box{animation:fadeInUp .4s ease-out}.iot-requirements-list li{animation:fadeInUp .4s ease-out backwards}.iot-requirements-list li:first-child{animation-delay:.05s}.iot-requirements-list li:nth-child(2){animation-delay:.1s}.iot-requirements-list li:nth-child(3){animation-delay:.15s}.iot-requirements-list li:nth-child(4){animation-delay:.2s}.iot-requirements-list li:nth-child(5){animation-delay:.25s}.field-hint{color:#666;margin-top:-5px}.requirement-card{border:1px solid #dee2e6}.btn-remove-requirement{border-radius:4px}.rule-section{background:#f8f9fa;border-radius:6px;margin-top:10px;padding:15px}.rule-type-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.rule-type-btn{background:#fff;border:2px solid #dee2e6;border-radius:6px;cursor:pointer;font-size:13px;padding:8px 16px;transition:all .2s}.rule-type-btn:hover{border-color:#06c;color:#06c}.rule-type-btn.active{background:#06c;border-color:#06c;color:#fff}.btn-add-requirement{margin-top:15px}.required{font-weight:700}.edit-field-col{flex-direction:column}.edit-field-col,.edit-field-row{display:flex;gap:12px;margin-bottom:15px}.edit-field-row{align-items:center}.edit-field-row label{color:#495057;font-size:14px;font-weight:500;min-width:110px;white-space:nowrap}.edit-field-row .edit-input,.edit-field-row .edit-select{flex:1 1;width:auto}.fiellds-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:15px}.fiellds-row .edit-field{margin-bottom:0}.fiellds-row .edit-field .edit-input,.fiellds-row .edit-field .edit-select{box-sizing:border-box;width:100%}.edit-field-col.row-3{grid-gap:16px;display:grid;flex-direction:row;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:15px}.edit-field-col.row-3 .edit-field{margin-bottom:0}.edit-field-col.row-3 .edit-field .edit-input,.edit-field-col.row-3 .edit-field .edit-select{box-sizing:border-box;width:100%}.edit-field-row .edit-field-col .edit-field{flex:1 1}@media (max-width:640px){.edit-field-col.row-3,.fiellds-row{grid-template-columns:1fr}.edit-field-row{align-items:flex-start;flex-direction:column}.edit-field-row label{min-width:0;min-width:auto}}.iot-requirements-builder{margin-top:20px;padding:15px}.iot-requirements-builder>label{margin-bottom:5px}.field-hint{color:#6c757d;font-size:13px;font-style:italic;margin-bottom:15px}.requirement-card{border:2px solid #e0e0e0}.requirement-card-header{border-bottom:2px solid #f0f0f0;margin-bottom:15px;padding-bottom:10px}.requirement-card-header h5{color:#2c3e50;font-size:16px}.btn-remove-requirement{border-radius:5px;font-size:13px;padding:6px 12px;transition:background .2s}.requirement-card h6{color:#495057;font-size:14px;font-weight:600;margin:15px 0 8px}.btn-add-requirement{font-weight:600;padding:12px;transition:background .2s}.required{color:#dc3545;margin-left:3px}.iot-requirements-builder{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin:20px 0;padding:20px}.iot-requirements-builder>label{color:#2c3e50;display:block;font-size:16px;font-weight:600;margin-bottom:8px}.iot-requirements-builder .field-hint{color:#6c757d;font-size:13px;font-style:italic;margin-bottom:15px}.requirement-card{background:#fff;border:2px solid #e9ecef;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-bottom:15px;padding:20px;transition:all .3s ease}.requirement-card:hover{border-color:#007bff;box-shadow:0 4px 8px #007bff1a}.requirement-card-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.requirement-card-header h5{color:#495057;font-size:18px;font-weight:600;margin:0}.btn-remove-requirement{align-items:center;background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s ease}.btn-remove-requirement:hover{background:#c82333;box-shadow:0 2px 4px #dc35454d;transform:translateY(-1px)}.edit-field label .required{color:#dc3545;margin-left:2px}.edit-field h6{border-bottom:1px solid #dee2e6;color:#495057;font-size:15px;font-weight:600;margin:15px 0 10px;padding-bottom:8px}.edit-input,.edit-select,.edit-textarea{background:#fff;border:1px solid #ced4da;border-radius:6px;font-size:14px;padding:10px 12px;transition:all .2s ease}.edit-input:focus,.edit-select:focus,.edit-textarea:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.edit-input::placeholder,.edit-textarea::placeholder{color:#adb5bd;font-style:italic}.edit-textarea{font-family:inherit;line-height:1.5;resize:vertical}.edit-textarea[style*=monospace]{background:#f8f9fa;font-family:Monaco,Menlo,Courier New,monospace;font-size:13px}.btn-add-requirement{align-items:center;background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:8px;justify-content:center;margin-top:10px;padding:12px 24px;transition:all .2s ease;width:100%}.btn-add-requirement:hover{background:#218838;box-shadow:0 4px 8px #28a74533;transform:translateY(-1px)}.min-readings-field{align-items:center;background:#fff3cd;border:1px solid #ffc107;border-radius:6px;display:flex;flex-direction:column;gap:10px;margin-bottom:15px;padding:12px}.min-readings-field label{color:#856404;font-weight:600;margin:0}.min-readings-field input{width:100px}.iot-requirements-box{background:#e7f3ff;border:2px solid #007bff;border-radius:8px;margin:15px 0;padding:15px}.iot-requirements-box strong{color:#004085;display:block;font-size:15px;margin-bottom:10px}.iot-requirements-list{list-style:none;margin:0;padding:0}.iot-requirements-list li{background:#fff;border-left:4px solid #007bff;border-radius:6px;margin-bottom:8px;padding:10px}.iot-requirements-list li strong{color:#0056b3;display:inline;left:15px;margin:0}.requirement-points-badge{background:#f59e0b;border-radius:6px;color:#fff;font-size:13px;font-weight:600;margin-left:auto;padding:4px 10px}@media (max-width:768px){.requirement-card{padding:15px}.requirement-card-header{align-items:flex-start;flex-direction:column;gap:10px}.btn-remove-requirement{justify-content:center;width:100%}}.circuits-modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:1000}.circuits-modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1200px;position:relative;width:90%}.circuits-modal-header{align-items:center;background:#f9fafb;border-bottom:2px solid #e5e7eb;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:1.5rem}.circuits-modal-header h3{color:#1f2937;font-size:1.5rem;margin:0}.circuits-modal-close-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:1.5rem;padding:.5rem;transition:color .2s}.circuits-modal-close-btn:hover{color:#ef4444}.circuits-modal-body{flex:1 1;overflow-y:auto;padding:1.5rem}@media (max-width:768px){.circuits-modal-content{border-radius:0;height:100vh;width:100vw}}.ai-assistant-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #667eea4d;margin-bottom:25px;padding:20px}.ai-assistant-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.ai-assistant-header h6{align-items:center;color:#fff;display:flex;font-size:16px;font-weight:600;gap:8px;margin:0}.ai-badge{background:#fff3;border-radius:20px;color:#fff;font-size:12px;font-weight:500;padding:4px 12px}.ai-assistant-form{background:#fff;border-radius:8px;padding:15px}.ai-form-row{align-items:flex-end;gap:15px}.ai-form-column,.ai-form-row{display:flex;margin-bottom:15px}.ai-form-column{align-items:flex-start;flex-direction:column;gap:5px}.ai-form-field,.ai-form-input-field{display:flex;flex-direction:column}.ai-form-input-field{width:85%}.ai-form-field label{color:#4a5568;font-size:13px;font-weight:500}.ai-input,.ai-select{border:2px solid #e2e8f0;border-radius:6px;font-size:14px;padding:10px 12px;transition:all .2s;width:100%}.ai-input:focus,.ai-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.ai-input:disabled,.ai-select:disabled{background:#f7fafc;cursor:not-allowed;opacity:.6}.btn-ai-generate{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:8px;justify-content:center;padding:12px 20px;transition:all .3s;width:100%}.btn-ai-generate:hover:not(:disabled){box-shadow:0 8px 20px #667eea66;transform:translateY(-2px)}.btn-ai-generate:active:not(:disabled){transform:translateY(0)}.btn-ai-generate:disabled{background:#cbd5e0;cursor:not-allowed;transform:none}.ai-icon,.ai-spinner{font-size:18px}.ai-spinner{animation:spin 1s linear infinite}.ai-error-box{align-items:center;background:#fff5f5;border:2px solid #fc8181;border-radius:8px;color:#c53030;display:flex;font-size:14px;gap:10px;margin-top:15px;padding:12px 15px}.error-icon{flex-shrink:0;font-size:20px}.ai-preview-section{background:#fff;border:2px solid #667eea;border-radius:8px;margin-top:15px;padding:20px}.ai-preview-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:15px}.ai-preview-header h6{color:#2d3748;font-size:16px;font-weight:600;margin:0}.ai-preview-actions{display:flex;gap:10px}.btn-ai-accept{background:linear-gradient(135deg,#48bb78,#38a169);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s}.btn-ai-accept:hover{box-shadow:0 4px 12px #48bb7866;transform:translateY(-2px)}.btn-ai-reject{background:linear-gradient(135deg,#f56565,#e53e3e);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s}.btn-ai-reject:hover{box-shadow:0 4px 12px #f5656566;transform:translateY(-2px)}.ai-preview-content{display:flex;flex-direction:column;gap:15px}.ai-preview-item{display:flex;gap:8px}.ai-preview-item-col{display:flex;flex-direction:column;gap:8px}.ai-preview-item strong{color:#2d3748;font-size:14px}.ai-preview-code{background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;color:#2d3748;font-family:Courier New,monospace;font-size:13px;margin:0;overflow-x:auto;padding:12px}.ai-preview-row{display:flex;flex-direction:column;flex-wrap:wrap;gap:15px;margin-bottom:15px}.ai-preview-value{background:#edf2f7;border-radius:6px;color:#2d3748;display:inline-block;font-size:14px;font-weight:600;padding:4px 12px}.ai-rubric-preview{background:#f7fafc;flex-direction:column;padding:15px}.ai-rubric-preview,.rubric-tier{border-radius:6px;display:flex;gap:10px}.rubric-tier{align-items:center;font-size:14px;padding:10px}.rubric-full{background:#c6f6d5;border-left:4px solid #48bb78}.rubric-partial{background:#feebc8;border-left:4px solid #ed8936}.rubric-fail{background:#fed7d7;border-left:4px solid #f56565}.rubric-label{color:#2d3748;font-weight:600;min-width:100px}.rubric-text{color:#4a5568;flex:1 1}.ai-preview-footer{border-top:2px solid #e2e8f0;margin-top:10px;padding-top:15px}.ai-preview-hint{align-items:center;color:#718096;display:flex;font-size:13px;gap:8px;line-height:1.5}@media (max-width:768px){.ai-form-row{flex-direction:column}.ai-form-field{flex:1 1!important;width:100%!important}.ai-preview-actions{flex-direction:column;width:100%}.btn-ai-accept,.btn-ai-reject{width:100%}.ai-preview-row,.rubric-tier{flex-direction:column}.rubric-tier{align-items:flex-start}.rubric-label{min-width:auto}}.ai-editable-field{align-items:center;display:flex;flex-direction:row!important;gap:10px}.ai-preview-input{border:2px solid #e2e8f0;border-radius:6px;font-size:14px;font-weight:600;padding:6px 10px;transition:all .2s;width:100px}.ai-preview-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.ai-preview-code-editable{background:#f7fafc;border:2px solid #e2e8f0;border-radius:6px;color:#2d3748;font-family:Courier New,monospace;font-size:13px;padding:12px;resize:vertical;transition:all .2s;width:95%}.ai-preview-code-editable:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.ai-rubric-preview-editable{display:flex;flex-direction:column;gap:10px}.rubric-input{background:#ffffff80;border:2px solid #0000;border-radius:4px;flex:1 1;font-size:14px;padding:8px 12px;transition:all .2s}.rubric-input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.rubric-tier{padding:12px}.ai-breakdown-display{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:12px;margin-top:15px;padding:20px}.ai-breakdown-header{border-bottom:2px solid #adb5bd;margin-bottom:15px;padding-bottom:10px}.ai-breakdown-header strong{align-items:center;color:#495057;display:flex;font-size:16px;gap:8px}.ai-breakdown-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:15px}.breakdown-criterion-display{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:15px;transition:all .3s ease}.breakdown-criterion-display:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.criterion-name{border-bottom:2px solid #e9ecef;color:#495057;font-size:14px;font-weight:600;margin-bottom:10px;padding-bottom:8px;text-transform:capitalize}.criterion-score{align-items:center;color:#212529;display:flex;font-size:18px;font-weight:700;gap:8px;margin-bottom:10px}.criterion-percent{background:#f8f9fa;border-radius:4px;color:#6c757d;font-size:14px;font-weight:500;padding:2px 8px}.criterion-feedback{background:#f8f9fa;border-left:3px solid #0d6efd;border-radius:6px;color:#6c757d;font-size:13px;line-height:1.5;padding:10px}.breakdown-criterion-display[data-score=high] .criterion-score{color:#198754}.breakdown-criterion-display[data-score=medium] .criterion-score{color:#fd7e14}.breakdown-criterion-display[data-score=low] .criterion-score{color:#dc3545}@media (max-width:768px){.ai-breakdown-grid{grid-template-columns:1fr}.criterion-score{font-size:16px}.criterion-feedback{font-size:12px}}.ai-rubric-section{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px dashed #0ea5e9;border-radius:12px;margin:15px 0;padding:20px}.btn-generate-rubric{align-items:center;background:linear-gradient(135deg,#0ea5e9,#0284c7);border-radius:8px;display:flex;gap:8px;margin-top:10px;padding:12px 24px}.btn-generate-rubric:hover:not(:disabled){background:linear-gradient(135deg,#0284c7,#0369a1);box-shadow:0 4px 12px #0ea5e94d}.btn-generate-rubric .spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.existing-rubric-display{background:#fff;border:2px solid #0ea5e9;border-radius:12px;margin-top:15px;padding:20px}.rubric-header{align-items:center;border-bottom:2px solid #e0f2fe;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.rubric-date{background:#f1f5f9;border-radius:12px;color:#64748b;font-size:12px;padding:4px 12px}.rubric-text-display{background:#f8fafc;border-left:4px solid #0ea5e9;border-radius:8px;color:#334155;line-height:1.6;margin-bottom:15px;padding:15px}.rubric-breakdown-details{margin:15px 0}.rubric-breakdown-details summary{background:#f0f9ff;border-radius:8px;color:#0ea5e9;cursor:pointer;font-weight:600;padding:10px;-webkit-user-select:none;user-select:none}.rubric-breakdown-details summary:hover{background:#e0f2fe}.rubric-breakdown-grid{grid-gap:15px;display:grid;gap:15px;margin-top:15px;padding:10px}.rubric-criterion-card{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:15px}.rubric-criterion-card .criterion-name{color:#0f172a;font-size:15px;font-weight:700;margin-bottom:8px;text-transform:capitalize}.rubric-criterion-card .criterion-max{color:#0ea5e9;font-size:13px;font-weight:600;margin-bottom:10px}.rubric-criterion-card .criterion-details p{color:#475569;font-size:13px;line-height:1.5;margin:8px 0}.rubric-criterion-card .criterion-details strong{color:#1e293b}.btn-remove-rubric{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;margin-top:15px;padding:8px 16px;transition:all .3s ease}.btn-remove-rubric:hover{background:#dc2626;transform:translateY(-1px)}.rubric-preview-modal{background:#fff;border:3px solid #0ea5e9;border-radius:12px;box-shadow:0 8px 24px #0ea5e933;margin:15px 0;padding:20px}.rubric-preview-header{align-items:center;border-bottom:2px solid #e0f2fe;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.rubric-preview-header h6{color:#0f172a;font-size:18px;margin:0}.rubric-preview-actions{display:flex;gap:10px}.btn-accept-rubric{background:#10b981}.btn-accept-rubric:hover{background:#059669;transform:translateY(-1px)}.btn-reject-rubric{background:#ef4444}.btn-reject-rubric:hover{background:#dc2626;transform:translateY(-1px)}.rubric-text-preview{background:#f0f9ff;border-left:4px solid #0ea5e9;border-radius:8px;margin-bottom:20px;padding:15px}.rubric-text-preview strong{color:#0f172a;display:block;margin-bottom:8px}.rubric-text-preview p{color:#334155;line-height:1.6;margin:0}.rubric-points{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;font-size:14px;font-weight:600;padding:4px 12px}.rubric-breakdown-preview{margin-top:20px}.rubric-breakdown-preview>strong{color:#0f172a;display:block;font-size:16px;margin-bottom:15px}.rubric-criterion-preview{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;margin-bottom:12px;padding:15px}.rubric-criterion-preview .criterion-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:8px}.rubric-criterion-preview .criterion-name{color:#0f172a;font-size:15px;font-weight:700;text-transform:capitalize}.rubric-criterion-preview .criterion-max{background:#0ea5e9;border-radius:12px;color:#fff;font-size:13px;font-weight:600;padding:4px 12px}.rubric-criterion-preview .criterion-content p{color:#475569;font-size:13px;line-height:1.6;margin:8px 0}.rubric-criterion-preview .criterion-content strong{color:#1e293b;font-weight:600}.ai-rubric-section{background-color:#f8f9fa;border:1px solid #e0e0e0;margin-top:15px}.btn-generate-rubric{font-weight:500}.rubric-preview-box{background-color:#fff;border:2px solid #667eea;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-top:15px;padding:20px}.rubric-preview-box h5{color:#333;font-size:16px;margin:0 0 10px}.rubric-breakdown-preview{background-color:#f8f9fa;border-radius:6px;margin:15px 0;padding:15px}.criterion-preview{border-bottom:1px solid #e0e0e0;padding:8px 0}.criterion-preview:last-child{border-bottom:none}.criterion-preview strong{color:#667eea;font-size:14px}.criterion-preview span{color:#666;font-size:13px}.rubric-actions{display:flex;gap:10px;margin-top:15px}.btn-accept-rubric{background-color:#10b981;flex:1 1;font-weight:500;padding:10px 20px}.btn-accept-rubric:hover{background-color:#059669;transform:translateY(-2px)}.btn-reject-rubric{background-color:#ef4444;flex:1 1;font-weight:500;padding:10px 20px}.btn-reject-rubric:hover{background-color:#dc2626}.applied-rubric-indicator{background-color:#d1fae5;border:1px solid #10b981;gap:10px;margin-top:10px;padding:10px 15px}.rubric-badge{color:#059669;font-size:14px}.btn-regenerate{background-color:#667eea;font-size:13px;padding:6px 12px;transition:all .3s ease}.btn-regenerate:hover{background-color:#5568d3}.ai-rubric-section{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin:20px 0;padding:15px}.btn-generate-rubric{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s ease}.btn-generate-rubric:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.btn-generate-rubric:disabled{cursor:not-allowed;opacity:.6}.rubric-editor-box{background:#fff;border:2px solid #667eea;border-radius:8px;box-shadow:0 4px 12px #0000001a;margin-top:15px;padding:20px}.rubric-editor-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.rubric-editor-header h5{color:#495057;font-size:1.2rem;margin:0}.edit-hint{color:#6c757d;font-size:.85rem;font-style:italic}.rubric-summary-editor{margin-bottom:25px}.rubric-summary-editor label{color:#495057;display:block;font-weight:600;margin-bottom:8px}.rubric-criteria-editor{margin:20px 0}.criteria-label{color:#495057;display:block;font-size:1.1rem;font-weight:700;margin-bottom:15px}.criterion-editor-card{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;margin-bottom:20px;padding:20px;transition:all .3s ease}.criterion-editor-card:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea26}.criterion-header{align-items:center;border-bottom:2px solid #dee2e6;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.criterion-name-input{background:#fff;border:1px solid #ced4da;border-radius:4px;color:#495057;flex:1 1;font-size:.8rem;font-weight:600;padding:8px 12px}.criterion-name-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.btn-remove-criterion{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;margin-left:10px;padding:6px 12px;transition:all .2s ease}.btn-remove-criterion:hover{background:#c82333;transform:scale(1.05)}.criterion-field{margin-bottom:15px}.criterion-field label{color:#495057;display:block;font-size:.9rem;font-weight:600;margin-bottom:6px}.percentage-slider-container{align-items:center;display:flex;gap:10px}.percentage-slider{-webkit-appearance:none;appearance:none;background:#dee2e6;border-radius:5px;flex:1 1;height:8px;outline:none}.percentage-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#667eea;border-radius:50%;cursor:pointer;height:20px;-webkit-transition:all .2s ease;transition:all .2s ease;width:20px}.percentage-slider::-webkit-slider-thumb:hover{background:#764ba2;transform:scale(1.2)}.percentage-slider::-moz-range-thumb{background:#667eea;border:none;border-radius:50%;cursor:pointer;height:20px;width:20px}.percentage-input{border:1px solid #ced4da;border-radius:4px;font-weight:600;padding:6px;text-align:center;width:60px}.percentage-label{color:#495057;font-weight:600}.points-display{color:#6c757d;font-size:.9rem;font-weight:500;white-space:nowrap}.btn-add-criterion{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;margin-bottom:20px;padding:12px;transition:all .3s ease;width:100%}.btn-add-criterion:hover{background:#218838;box-shadow:0 4px 12px #28a7454d;transform:translateY(-2px)}.rubric-validation{border-radius:6px;font-weight:600;margin-bottom:20px;padding:12px;text-align:center}.rubric-validation.valid{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.rubric-validation.invalid{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.rubric-editor-actions{display:flex;gap:10px;justify-content:flex-end}.btn-accept-rubric{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-accept-rubric:hover:not(:disabled){background:#218838;box-shadow:0 4px 12px #28a74566;transform:translateY(-2px)}.btn-accept-rubric:disabled{cursor:not-allowed;opacity:.5}.btn-reject-rubric{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-reject-rubric:hover{background:#5a6268;transform:translateY(-2px)}.applied-rubric-indicator{align-items:center;background:#d4edda;border:1px solid #c3e6cb;border-radius:6px;display:flex;gap:15px;margin-top:15px;padding:12px}.rubric-badge{color:#155724;font-weight:600}.btn-regenerate{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:600;padding:8px 16px;transition:all .2s ease}.btn-regenerate:hover{background:#764ba2;transform:translateY(-1px)}@media (max-width:768px){.rubric-editor-header{align-items:flex-start;flex-direction:column;gap:10px}.percentage-slider-container{flex-wrap:wrap}.rubric-editor-actions{flex-direction:column}.btn-accept-rubric,.btn-reject-rubric{width:100%}}.btn-reset-rubric{background:#17a2b8;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-reset-rubric:hover{background:#138496;transform:translateY(-2px)}.saved-rubric-display{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:2px solid #0ea5e9;border-radius:12px;margin:20px 0;padding:20px}.rubric-display-header{align-items:center;border-bottom:2px solid #bae6fd;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.rubric-display-header strong{color:#0c4a6e;font-size:16px}.rubric-generated-date{background:#fff;border-radius:12px;color:#64748b;font-size:12px;padding:4px 12px}.rubric-summary-text{background:#fff;border-left:4px solid #0ea5e9;border-radius:8px;margin-bottom:20px;padding:15px}.rubric-summary-text strong{color:#0f172a;display:block;font-size:13px;margin-bottom:8px}.rubric-summary-text p{color:#334155;font-size:13px;line-height:1.5;margin:0}.rubric-criteria-display{margin-top:15px}.rubric-criteria-display>strong{color:#0f172a;display:block;font-size:15px;margin-bottom:12px}.criterion-display-card{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 2px 4px #0000000d;margin-bottom:12px;padding:15px}.criterion-display-header{align-items:center;border-bottom:2px solid #f1f5f9;display:flex;gap:15px;justify-content:space-between;margin-bottom:12px;padding-bottom:10px}.criterion-display-name{color:#0f172a;font-size:13px;font-weight:700}.criterion-display-points{background:#0ea5e9;border-radius:12px;color:#fff;font-size:13px;font-weight:600;padding:4px 12px}.criterion-display-content p{color:#475569;font-size:13px;line-height:1.6;margin:8px 0}.criterion-display-content strong{color:#1e293b;font-weight:600}.btn-recalculate-tiers:active{box-shadow:0 2px 4px #4f46e533;transform:translateY(0)}.rubric-tier-edit-row{align-items:flex-start;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;display:flex;gap:10px;margin-bottom:10px;padding:10px}.btn-remove-tier{background:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s}.btn-remove-tier:hover{background:#dc2626}.btn-add-tier{background:#10b981;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;margin-top:10px;padding:8px 16px;transition:all .2s}.btn-add-tier:hover{background:#059669}.btn-recalculate-tiers{background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:6px;box-shadow:0 2px 4px #4f46e533;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.btn-recalculate-tiers:hover{background:linear-gradient(135deg,#4f46e5,#4338ca);box-shadow:0 4px 8px #4f46e54d;transform:translateY(-1px)}.lab-section-card{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;overflow:hidden}.lab-section-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;-webkit-user-select:none;user-select:none}.lab-section-header h4{color:#fff;font-size:14px;margin:0}.lab-section-body{padding:16px}.install-prompt-overlay{bottom:20px;left:50%;max-width:400px;position:fixed;transform:translateX(-50%);width:90%;z-index:9999}.install-prompt-box{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000004d;padding:20px;text-align:center}.install-prompt-box h3{color:#3f37c9;margin:0 0 10px}.install-prompt-box p{color:#666;margin:0 0 15px}.install-prompt-buttons{display:flex;gap:10px;justify-content:center}.install-button{background:#3f37c9;color:#fff;font-weight:700}.dismiss-button,.install-button{border:none;border-radius:6px;cursor:pointer;padding:10px 20px}.dismiss-button{background:#eee;color:#333}.notification-toast{align-items:center;animation:slideIn .3s ease-out forwards;border-radius:12px;box-shadow:0 10px 40px #0003,0 4px 8px #0000001a;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:500;gap:12px;max-width:500px;min-width:300px;padding:14px 20px;position:fixed;right:20px;top:20px;transition:transform .2s ease;z-index:99999}.notification-toast:hover{box-shadow:0 12px 45px #00000040,0 6px 12px #00000026;transform:translateY(-2px)}.notification-icon{flex-shrink:0;font-size:1.4rem}.notification-message{flex:1 1;line-height:1.4}@keyframes slideIn{0%{opacity:0;transform:translateX(100%) translateY(-10px)}to{opacity:1;transform:translateX(0) translateY(0)}}@keyframes slideOut{0%{opacity:1;transform:translateX(0) translateY(0)}to{opacity:0;transform:translateX(100%) translateY(-10px)}}@media (max-width:640px){.notification-toast{left:10px;max-width:none;min-width:auto;right:10px;top:10px}}.notification-toast:nth-child(2){top:90px}.notification-toast:nth-child(3){top:160px}.notification-toast:nth-child(4){top:230px}
/*# sourceMappingURL=main.ae6c09ea.css.map*/