:root{--color-primary: #E87722;--color-primary-light: #F5A623;--color-primary-dark: #C45A00;--color-secondary: #00838F;--color-secondary-light: #26A69A;--color-bg: #FAFAFA;--color-bg-card: #FFFFFF;--color-text: #333333;--color-text-muted: #666666;--color-border: #E0E0E0;--color-success: #43A047;--color-warning: #FFA000;--color-error: #E53935;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-base: 16px;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--line-height: 1.6;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base)}body{font-family:var(--font-family);line-height:var(--line-height);color:var(--color-text);background-color:var(--color-bg);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text)}h1{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md)}p{margin-bottom:var(--spacing-md)}.container{max-width:600px;margin:0 auto;padding:var(--spacing-lg)}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl)}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg);background:linear-gradient(135deg,#fff8e7,#fafafa)}.login-card{width:100%;max-width:420px;text-align:center}.login-card h1{color:var(--color-primary-dark);font-size:1.75rem;margin-bottom:var(--spacing-sm)}.login-card .subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-xl);font-size:1.1rem}.login-card .welcome-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.form-group{margin-bottom:var(--spacing-lg);text-align:left}.form-group label{display:block;font-weight:500;margin-bottom:var(--spacing-xs);color:var(--color-text)}.form-group input{width:100%;padding:var(--spacing-md);font-size:1rem;font-family:inherit;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #e8772226}.form-group input::placeholder{color:#999}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);font-size:1rem;font-weight:600;font-family:inherit;border:none;border-radius:var(--radius-md);cursor:pointer;transition:transform .1s,box-shadow .2s,background-color .2s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff;box-shadow:var(--shadow-md)}form .btn-primary{width:100%}.btn-primary:hover:not(:disabled){box-shadow:var(--shadow-lg)}.btn-secondary{background:var(--color-bg);color:var(--color-text);border:2px solid var(--color-border)}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}.message{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.message-success{background:#e8f5e9;color:#2e7d32;border:1px solid #A5D6A7}.message-error{background:#ffebee;color:#c62828;border:1px solid #FFCDD2}.message-info{background:#fff8e1;color:#f57c00;border:1px solid #FFE082}.spam-warning{background:#fff3e0;color:#bf360c;border:2px solid #FF8A65;border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-md);margin-bottom:var(--spacing-md);font-size:.9rem;text-align:left;line-height:1.5;animation:fadeIn .3s ease-out}.spam-warning p{margin-bottom:var(--spacing-sm)}.spam-warning ol{margin:var(--spacing-sm) 0;padding-left:var(--spacing-lg)}.spam-warning li{margin-bottom:var(--spacing-xs)}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.mt-md{margin-top:var(--spacing-md)}.mb-md{margin-bottom:var(--spacing-md)}.scenarios-page{min-height:100vh;background:var(--color-bg);padding:var(--spacing-lg)}.page-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md);max-width:800px;margin:0 auto var(--spacing-xl);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.page-header h1{margin:0;font-size:1.5rem}.user-info{display:flex;align-items:center;gap:var(--spacing-md);font-size:.9rem;color:var(--color-text-muted)}.scenarios-container{max-width:800px;margin:0 auto}.scenarios-container .subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.scenarios-container .instruction{color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--spacing-xl)}.scenario-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.scenario-card{padding:var(--spacing-lg);background:var(--color-bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);transition:box-shadow .2s,border-color .2s}.scenario-card:hover{box-shadow:var(--shadow-md)}.scenario-card.active{border-color:var(--color-primary);border-width:3px;border-left-width:5px;background:#fff8ef;box-shadow:0 4px 20px #e8772226,var(--shadow-lg)}.scenario-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.scenario-info{flex:1;min-width:0}.scenario-title{color:var(--color-text);margin-bottom:var(--spacing-sm);font-size:1.1rem}.scenario-description{color:var(--color-text-muted);margin-bottom:var(--spacing-sm);font-size:.95rem}.scenario-role{color:var(--color-text-muted);font-size:.9rem;margin-bottom:0}.start-btn{flex-shrink:0;width:auto;min-width:100px;padding:var(--spacing-sm) var(--spacing-lg)}.scenario-actions{display:flex;align-items:center;gap:var(--spacing-md);flex-shrink:0}.scenario-header-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.scenario-header-clickable:hover{background:#e8772208;border-radius:var(--radius-md)}.expand-icon{display:inline-block;font-size:.85rem;color:var(--color-text-muted);margin-right:var(--spacing-xs);transition:transform .2s}.interaction-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);vertical-align:middle;margin-left:var(--spacing-sm)}.badge-initiate{background:#e3f2fd;color:#1565c0}.badge-reply{background:#f3e5f5;color:#7b1fa2}.active-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-full);background:#dcfce7;color:#166534;margin-left:var(--spacing-sm);vertical-align:middle;animation:gentle-pulse 2s ease-in-out infinite}@keyframes gentle-pulse{0%,to{opacity:1}50%{opacity:.6}}.scenario-card.expanded{border-color:var(--color-border);box-shadow:var(--shadow-md)}.scenario-card.expanded.active{border-color:var(--color-primary)}.drawer-actions+.grading-results{margin-top:var(--spacing-lg)}.drawer-actions{margin-top:var(--spacing-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.drawer-actions .start-btn{min-width:260px;padding:var(--spacing-md) var(--spacing-xl);font-size:1rem}.attempt-feedback{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-sm);background:var(--color-bg);border-radius:var(--radius-sm);border-left:3px solid var(--color-border);font-size:.85rem;color:var(--color-text-muted)}.attempt-feedback p{margin:0;line-height:1.5}.scenario-drawer{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:2px solid var(--color-border);animation:drawerSlideDown .4s ease-out;transform-origin:top}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.drawer-content-loaded{animation:fadeInContent .6s ease-out}@keyframes fadeInContent{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.task-section,.instructions-section,.status-section,.grading-results{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius-md);border-left:3px solid var(--color-primary)}.task-section h4,.instructions-section h4,.grading-results h4{color:var(--color-primary-dark);font-size:1rem;margin-bottom:var(--spacing-sm);display:flex;align-items:center;gap:var(--spacing-xs)}.instructions-section code{background:var(--color-bg-card);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-family:Courier New,monospace;font-size:.9em;color:var(--color-primary-dark);border:1px solid var(--color-border)}.copy-email-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.copy-email-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;font-size:.82rem;font-weight:500;font-family:inherit;color:var(--color-primary-dark);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.copy-email-btn:hover{background:#fff3e0;border-color:var(--color-primary)}.copy-email-btn.copied{color:var(--color-success);border-color:var(--color-success);background:#e8f5e9}.resend-btn{margin-top:var(--spacing-md)}.status-section{border-left-color:var(--color-warning)}.pending-status{color:var(--color-warning);font-weight:500;display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:0}.score-badge{font-style:italic;color:var(--color-text-muted);font-size:.85rem;white-space:nowrap}.score-badge .dots{display:inline-block;width:1em;text-align:left}.score-badge .dots:after{content:"";animation:dot-cycle 1.5s steps(1) infinite}.score-badge.scored{font-style:normal;font-weight:600;color:var(--color-success);animation:score-pop .6s ease-out}@keyframes score-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.score-indicator-row{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:var(--spacing-xs)}.score-indicator{display:inline-block;font-size:.8rem;font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap}.score-indicator.green{background:#dcfce7;color:#166534}.score-indicator.yellow{background:#fef9c3;color:#854d0e}.score-indicator.red{background:#fce4ec;color:#b71c1c}.score-indicator.pending{background:var(--color-bg);font-weight:400}.prev-attempts-link{font-size:.72rem;color:var(--color-text-muted);text-decoration:none;opacity:.7;transition:opacity .2s}.prev-attempts-link:hover{opacity:1;text-decoration:underline}.attempts-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.attempts-modal{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;max-width:420px;width:90vw;max-height:70vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .25s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.attempts-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.attempts-modal-header h3{margin:0;font-size:1rem}.attempts-modal-close{background:none;border:none;font-size:1.5rem;color:var(--color-text-muted);cursor:pointer;padding:0 4px;line-height:1}.attempts-modal-close:hover{color:var(--color-text)}.attempts-modal-body{padding:var(--spacing-md) var(--spacing-lg);overflow-y:auto}.attempt-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.attempt-row:last-child{border-bottom:none}.attempt-info{display:flex;align-items:center;gap:var(--spacing-sm)}.attempt-number{font-weight:600;color:var(--color-text-muted);font-size:.85rem}.attempt-date{color:var(--color-text-muted);font-size:.8rem}@keyframes dot-cycle{0%{content:"."}33%{content:".."}66%{content:"..."}}.success-status{color:var(--color-success);font-weight:500;display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:0}.error-status{color:var(--color-error);font-weight:500;display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:0}.scenario-actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-sm);flex-shrink:0}.error-message{color:var(--color-error);background:#ffebee;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:.9rem;border-left:3px solid var(--color-error);max-width:300px;text-align:left;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.grading-results{border-left-color:var(--color-success);background:#e8f5e9}.grading-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.grading-header h4{margin-bottom:0}.score{font-size:1.2rem;font-weight:700;color:var(--color-success)}.feedback{margin-bottom:var(--spacing-md)}.feedback strong{color:var(--color-text)}.graded-time{font-size:.85rem;color:var(--color-text-muted);font-style:italic}.rubric-breakdown{margin-bottom:var(--spacing-md)}.rubric-breakdown>p{margin-bottom:var(--spacing-sm)}.rubric-row{display:grid;grid-template-columns:1fr auto auto;gap:var(--spacing-sm);align-items:center;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.06)}.rubric-row:last-child{border-bottom:none}.rubric-name{font-size:.88rem;font-weight:500;color:var(--color-text)}.rubric-score-bar{width:60px;height:6px;background:#00000014;border-radius:3px;overflow:hidden}.rubric-bar-fill{height:100%;border-radius:3px;transition:width .4s ease-out}.rubric-score-value{font-size:.82rem;font-weight:600;color:var(--color-text-muted);min-width:28px;text-align:right}.rubric-justification{grid-column:1 / -1;font-size:.8rem;color:var(--color-text-muted);padding-left:var(--spacing-sm);border-left:2px solid rgba(0,0,0,.06);margin-top:2px;margin-bottom:4px;line-height:1.4}.revision-example{margin-bottom:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.revision-example summary{padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;font-weight:500;font-size:.9rem;color:var(--color-primary-dark);background:#e877220a;-webkit-user-select:none;user-select:none}.revision-example summary:hover{background:#e8772214}.revision-body{padding:var(--spacing-md);font-size:.88rem;line-height:1.6;color:var(--color-text);background:var(--color-bg-card);border-top:1px solid var(--color-border)}.revision-body p{margin:0}.see-rubric-link{display:inline-block;margin-top:var(--spacing-sm);font-size:.88rem;color:var(--color-primary);text-decoration:none;font-weight:500;transition:color .15s}.see-rubric-link:hover{color:var(--color-primary-dark);text-decoration:underline}.rubric-modal{max-width:520px}.rubric-focus-section{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:#fff8e1;border-radius:var(--radius-md);border-left:3px solid var(--color-warning, #f0ad4e)}.rubric-focus-section h4{margin:0 0 var(--spacing-sm) 0;font-size:.95rem;color:var(--color-text)}.rubric-focus-section p{margin:0;font-size:.88rem;line-height:1.5;color:var(--color-text)}.rubric-criteria-section h4{margin:0 0 var(--spacing-sm) 0;font-size:.95rem;color:var(--color-text)}.rubric-scale-label{font-weight:400;font-size:.82rem;color:var(--color-text-muted)}.rubric-scale-legend{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);font-size:.75rem;color:var(--color-text-muted)}.rubric-criteria-row{padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.rubric-criteria-row:last-child{border-bottom:none}.rubric-criteria-name{font-weight:600;font-size:.88rem;color:var(--color-text);margin-bottom:2px}.rubric-criteria-desc{font-size:.82rem;color:var(--color-text-muted);line-height:1.4}.badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.badge-success{background:#e8f5e9;color:#2e7d32}.badge-warning{background:#fff8e1;color:#f57c00}.name-modal-overlay{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1100;animation:fadeIn .2s ease-out}.name-modal{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;max-width:400px;width:90vw;padding:var(--spacing-xl);text-align:center;animation:slideUp .3s ease-out}.name-modal .welcome-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.name-modal h2{font-size:1.4rem;color:var(--color-primary-dark);margin-bottom:var(--spacing-sm)}.name-modal .subtitle{color:var(--color-text-muted);margin-bottom:var(--spacing-lg);font-size:.95rem}.edit-name-link{font-size:.85rem;color:var(--color-primary);text-decoration:none;transition:color .15s}.edit-name-link:hover{color:var(--color-primary-dark);text-decoration:underline}.edit-name-form{display:flex;align-items:center;gap:var(--spacing-sm)}.edit-name-form input{padding:var(--spacing-xs) var(--spacing-sm);font-size:.9rem;font-family:inherit;border:2px solid var(--color-border);border-radius:var(--radius-sm);width:140px}.edit-name-form input:focus{outline:none;border-color:var(--color-primary)}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.85rem}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.feedback-link{position:fixed;bottom:16px;right:16px;background:none;border:none;color:var(--color-text-muted);font-family:var(--font-family);font-size:.8rem;cursor:pointer;opacity:.5;transition:opacity .2s,color .2s;z-index:900;padding:4px 8px}.feedback-link:hover{opacity:1;color:var(--color-primary)}.feedback-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;animation:fadeIn .2s ease-out}.feedback-modal-overlay.closing{animation:fadeOut .2s ease-out forwards}@keyframes fadeOut{to{opacity:0}}.feedback-modal{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;max-width:400px;width:90vw;animation:slideUp .25s ease-out;overflow:hidden}.feedback-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border)}.feedback-modal-header h2{margin:0;font-size:1.1rem}.feedback-close-btn{background:none;border:none;font-size:1.5rem;color:var(--color-text-muted);cursor:pointer;padding:0 4px;line-height:1}.feedback-close-btn:hover{color:var(--color-text)}.feedback-modal-body{padding:var(--spacing-lg)}.star-rating{text-align:center;margin-bottom:var(--spacing-lg)}.star-label{display:block;font-size:.9rem;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.stars{display:inline-flex;gap:4px}.star{background:none;border:none;cursor:pointer;padding:2px;transition:transform .15s}.star svg{fill:#d1d5db;stroke:#d1d5db;stroke-width:.5;transition:fill .15s,stroke .15s}.star:hover{transform:scale(1.15)}.star.active svg{fill:#f59e0b;stroke:#d97706}.feedback-modal-body textarea{width:100%;padding:var(--spacing-md);font-size:.95rem;font-family:inherit;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);resize:vertical;min-height:80px;transition:border-color .2s,box-shadow .2s}.feedback-modal-body textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #e8772226}.feedback-send-btn{width:100%;margin-top:var(--spacing-md);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.send-icon{transition:transform .2s}.feedback-send-btn:hover:not(:disabled) .send-icon{transform:translate(3px)}.feedback-status{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.9rem;text-align:center;margin-bottom:var(--spacing-sm)}.feedback-status-success{background:#e8f5e9;color:#2e7d32;border:1px solid #A5D6A7}.feedback-status-error{background:#ffebee;color:#c62828;border:1px solid #FFCDD2}
