:root{--color-fog: #F5F5F0;--color-platinum: #E8E8E8;--color-line: #D0D0D0;--color-slate: #5A5A5A;--color-charcoal: #2C2C2C;--color-white: #FFFFFF;--color-accent: #C7547C;--color-error: #8B0000;--font-primary: "Geneva", "Chicago", -apple-system, BlinkMacSystemFont, sans-serif;--text-4xl: 48px;--text-3xl: 36px;--text-2xl: 24px;--text-xl: 18px;--text-base: 16px;--text-lg: 14px;--text-sm: 11px;--text-xs: 9px;--space-1: 2px;--space-2: 4px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 24px;--space-7: 32px;--space-8: 48px;--space-9: 64px;font-family:var(--font-primary);line-height:1.6;font-weight:400;color:var(--color-charcoal);background-color:var(--color-fog);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:700;color:var(--color-charcoal);text-decoration:none}a:hover{text-decoration:underline}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:var(--text-3xl);line-height:1.2;font-weight:700}button{border:2px solid var(--color-charcoal);padding:.5rem 1rem;font-size:var(--text-base);font-weight:700;font-family:inherit;background-color:var(--color-white);color:var(--color-charcoal);cursor:pointer}button:hover{background-color:var(--color-platinum)}button:focus,button:focus-visible{outline:2px solid var(--color-charcoal);outline-offset:2px}*{box-sizing:border-box}body{margin:0;font-family:var(--font-primary);background:var(--color-fog);color:var(--color-charcoal)}.app{max-width:960px;margin:0 auto;padding:var(--space-6)}.app.app-wide{max-width:1400px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);padding:var(--space-5) var(--space-6);background:var(--color-platinum);border:2px solid var(--color-charcoal);border-bottom:3px solid var(--color-charcoal)}header h1{margin:0;font-size:var(--text-xl);font-weight:700;text-transform:uppercase;letter-spacing:.1em}.header-right{display:flex;align-items:center;gap:var(--space-4)}.username{color:var(--color-slate);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.impersonate-select{padding:var(--space-2) var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-family:var(--font-primary);font-size:var(--text-sm);max-width:200px}.impersonate-banner{background:#eef2ff;color:var(--color-charcoal);padding:var(--space-3) var(--space-5);border:2px solid var(--color-accent);margin-bottom:var(--space-5);font-size:var(--text-base);font-weight:700;display:flex;align-items:center;gap:var(--space-4)}.impersonate-stop-btn{background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:2px 2px #00000026;color:var(--color-charcoal);padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-left:auto}.impersonate-stop-btn:hover{background:var(--color-charcoal);color:var(--color-white);transform:none}main{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}@media(max-width:768px){main{grid-template-columns:1fr}}.panel{background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:4px 4px #00000026;padding:var(--space-6)}.panel h2{margin-top:0;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--color-platinum);margin:calc(-1 * var(--space-6));margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);border-bottom:2px solid var(--color-charcoal)}.panel h3{font-size:var(--text-lg);font-weight:700;margin-top:var(--space-5);text-transform:uppercase;letter-spacing:.05em}.status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.status-item{display:flex;flex-direction:column;background:var(--color-platinum);border:2px solid var(--color-charcoal);padding:var(--space-3) var(--space-4);box-shadow:3px 3px #00000026}.status-item .label{font-size:var(--text-xs);color:var(--color-slate);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.status-item .value{font-size:var(--text-xl);font-weight:700}.status-item .value.connected{color:#2d6a2e}.status-item .value.disconnected,.status-item .value.error{color:var(--color-error)}.jobs-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.jobs-table th,.jobs-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:2px solid var(--color-line)}.jobs-table th{color:var(--color-slate);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;background:var(--color-platinum);border-bottom:2px solid var(--color-charcoal)}.jobs-table code{background:var(--color-platinum);padding:1px 4px;border:1px solid var(--color-line);font-family:monospace;font-size:var(--text-xs)}.tooltip-wrapper{position:relative;display:inline-block;margin-left:var(--space-2)}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;font-size:.65rem;font-weight:700;color:var(--color-slate);background:var(--color-platinum);border:1px solid var(--color-charcoal);cursor:help;vertical-align:middle}.help-icon:hover{color:var(--color-white);background:var(--color-charcoal)}.tooltip{visibility:hidden;opacity:0;position:absolute;bottom:125%;left:50%;transform:translate(-50%);background:var(--color-white);color:var(--color-charcoal);padding:var(--space-3) var(--space-4);font-size:var(--text-lg);white-space:normal;width:220px;text-align:left;border:2px solid var(--color-charcoal);box-shadow:4px 4px #00000026;z-index:10;transition:opacity .2s,visibility .2s}.tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px;border-style:solid;border-color:var(--color-charcoal) transparent transparent transparent}.tooltip-wrapper:hover .tooltip{visibility:visible;opacity:1}.user-messages{grid-column:span 2}@media(max-width:768px){.user-messages{grid-column:span 1}}.channel-selector{display:flex;gap:var(--space-3);margin-bottom:var(--space-4)}.channel-selector select{flex:1;padding:var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-family:var(--font-primary);font-size:var(--text-base)}.channel-info{color:var(--color-slate);font-size:var(--text-lg);margin-bottom:var(--space-4)}.messages-list{max-height:500px;overflow-y:auto}.message{background:var(--color-white);border:2px solid var(--color-line);padding:var(--space-4);margin-bottom:var(--space-3)}.message-header{display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.message-header .author{font-weight:700;color:var(--color-charcoal)}.message-header .timestamp{font-size:var(--text-xs);color:var(--color-slate);text-transform:uppercase;letter-spacing:.05em}.message-content{white-space:pre-wrap;word-break:break-word;line-height:1.6}.message-content a{color:var(--color-charcoal);font-weight:700;text-decoration:underline}.message .attachments{margin-top:var(--space-3);font-size:var(--text-lg)}.message .attachments a{color:var(--color-charcoal);font-weight:700}.no-messages{color:var(--color-slate);text-align:center;padding:var(--space-7)}button{padding:var(--space-5) var(--space-7);border:3px solid var(--color-accent);cursor:pointer;font-size:var(--text-xl);font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--color-white);color:var(--color-accent);box-shadow:4px 4px 0 var(--color-accent);font-family:var(--font-primary);transition:background .15s,color .15s}button:hover{background:var(--color-accent);color:var(--color-white)}button:active{box-shadow:inset 1px 1px 2px #0000004d;transform:translate(1px,1px)}button:disabled{background:var(--color-platinum);color:var(--color-slate);border-color:var(--color-slate);box-shadow:none;cursor:not-allowed}.logout-btn{background:var(--color-white);border:2px solid var(--color-charcoal);color:var(--color-charcoal);box-shadow:3px 3px #00000026;font-size:var(--text-sm);padding:var(--space-3) var(--space-5)}.logout-btn:hover{background:var(--color-charcoal);color:var(--color-white)}.refresh-btn{margin-top:var(--space-4)}.login-container{max-width:400px;margin:100px auto;background:var(--color-white);border:3px solid var(--color-charcoal);box-shadow:6px 6px #0003;text-align:center}.login-container:before{content:"";display:block;background:var(--color-platinum);padding:var(--space-3) var(--space-4);border-bottom:3px solid var(--color-charcoal)}.login-container h1{margin:var(--space-6) 0 var(--space-5);font-size:var(--text-2xl)}.login-container form{display:flex;flex-direction:column;gap:var(--space-4);padding:0 var(--space-7) var(--space-7)}.login-container input{padding:var(--space-4);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-base);font-family:var(--font-primary)}.login-container input:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.login-container select{padding:var(--space-4);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-base);font-family:var(--font-primary);width:100%}.login-container select:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.login-divider{display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-7);color:var(--color-slate);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.login-divider:before,.login-divider:after{content:"";flex:1;height:2px;background:var(--color-line)}.login-error{padding:0 var(--space-7);margin:0}.login-social{padding:var(--space-4) var(--space-7) var(--space-7)}.discord-login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-3);background:#5865f2;color:var(--color-white);border:3px solid #4752C4;box-shadow:4px 4px #4752c4;padding:var(--space-4) var(--space-5);font-size:var(--text-base)}.discord-login-btn:hover{background:#4752c4;color:var(--color-white)}.discord-login-btn:disabled{background:#8891f2;border-color:#7881e0;box-shadow:none;color:#ffffffb3}.error{color:var(--color-error);font-size:var(--text-xs);font-weight:700;text-transform:uppercase}.session-warning{background:#fff5f5;color:var(--color-error);padding:var(--space-4) var(--space-5);border:2px solid var(--color-error);margin-bottom:var(--space-5);font-size:var(--text-base);line-height:1.6}.session-warning-btn{background:none;border:none;box-shadow:none;color:var(--color-error);text-decoration:underline;cursor:pointer;padding:0;font-size:inherit;font-family:inherit;text-transform:none;font-weight:700;letter-spacing:normal}.session-warning-btn:hover{color:var(--color-charcoal);background:none;box-shadow:none}.tab-navigation{display:flex;gap:0;margin-bottom:var(--space-6);border:2px solid var(--color-charcoal)}.tab-btn{background:var(--color-white);border:none;border-right:2px solid var(--color-charcoal);box-shadow:none;color:var(--color-slate);padding:var(--space-3) var(--space-5);cursor:pointer;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.tab-btn:last-child{border-right:none}.tab-btn:hover{color:var(--color-charcoal);background:var(--color-platinum);transform:none}.tab-btn:active{transform:none;box-shadow:none}.tab-btn.active{color:var(--color-white);background:var(--color-charcoal)}.student-cohort-panel{grid-column:span 2}.cohort-controls{display:flex;gap:var(--space-3);margin-bottom:var(--space-5)}.cohort-controls select{flex:1;max-width:200px;padding:var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-family:var(--font-primary);font-size:var(--text-base)}.student-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.student-table th,.student-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:2px solid var(--color-line)}.student-table th{color:var(--color-slate);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;background:var(--color-platinum);border-bottom:2px solid var(--color-charcoal)}.student-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.student-table th.sortable:hover{color:var(--color-charcoal);background:var(--color-line)}.student-name-link{background:none;border:none;box-shadow:none;color:var(--color-charcoal);cursor:pointer;padding:0;font-size:inherit;text-align:left;font-weight:700;text-transform:none;letter-spacing:normal}.student-name-link:hover{text-decoration:underline;background:none;transform:none}.student-name-link:active{transform:none;box-shadow:none}.student-name-cell{display:flex;align-items:center;gap:var(--space-3)}.student-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-charcoal);object-fit:cover;flex-shrink:0}.student-avatar-placeholder{width:32px;height:32px;border-radius:50%;border:2px solid var(--color-line);background:var(--color-platinum);color:var(--color-slate);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700;flex-shrink:0;text-transform:uppercase}.no-students{color:var(--color-slate);text-align:center;padding:var(--space-7)}.delete-btn{background:var(--color-white);border:1px solid var(--color-line);box-shadow:none;color:var(--color-slate);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em}.delete-btn:hover{background:var(--color-platinum);color:var(--color-charcoal);transform:none}.delete-btn:active{transform:none;box-shadow:none}.delete-btn.confirm{background:var(--color-error);border-color:var(--color-error);color:var(--color-white)}.delete-note-btn{margin-left:auto;background:var(--color-white);border:1px solid var(--color-line);box-shadow:none;color:var(--color-slate);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.delete-note-btn:hover{background:var(--color-platinum);color:var(--color-charcoal);transform:none}.delete-note-btn.confirm{background:var(--color-error);border-color:var(--color-error);color:var(--color-white)}.observer-select{padding:var(--space-1) var(--space-2);font-size:var(--text-base);font-family:var(--font-primary);border:2px solid var(--color-charcoal);background:var(--color-white);cursor:pointer}.observer-select:hover{border-color:var(--color-charcoal);background:var(--color-fog)}.status-badge{display:inline-block;padding:var(--space-1) var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:700;border:2px solid}.status-active{background:var(--color-white);color:#2d6a2e;border-color:#2d6a2e}.status-inactive{background:var(--color-white);color:#8b6914;border-color:#8b6914}.status-graduated{background:var(--color-white);color:var(--color-charcoal);border-color:var(--color-charcoal)}.status-withdrawn{background:#fff5f5;color:var(--color-error);border-color:var(--color-error)}.sidebar-overlay{position:fixed;inset:0;background:#00000080;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:100}.sidebar-overlay.open{opacity:1;visibility:visible}.sidebar{position:fixed;top:0;right:0;max-width:90vw;height:100dvh;background:var(--color-white);border-left:3px solid var(--color-charcoal);box-shadow:-6px 0 #00000026;transform:translate(100%);transition:transform .3s ease;z-index:101;display:flex;flex-direction:column}.sidebar.open{transform:translate(0)}.sidebar.resizing{transition:none;-webkit-user-select:none;user-select:none}.sidebar-resize-handle{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:ew-resize;background:transparent;z-index:10}.sidebar-resize-handle:hover,.sidebar.resizing .sidebar-resize-handle{background:var(--color-accent)}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-platinum);border-bottom:3px solid var(--color-charcoal)}.sidebar-header h2{margin:0;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:none;padding:0;border-bottom:none}.sidebar-title-editable{cursor:pointer;border-bottom:1px dashed transparent;transition:border-color .2s}.sidebar-title-editable:hover{border-bottom-color:var(--color-slate)}.sidebar-title-input{font-size:var(--text-xl);font-weight:700;background:var(--color-white);color:var(--color-charcoal);border:2px solid var(--color-charcoal);padding:var(--space-1) var(--space-3);margin:0;width:100%;font-family:var(--font-primary)}.sidebar-title-input:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.sidebar-close{background:var(--color-charcoal);color:var(--color-white);width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);border:none;box-shadow:1px 1px #0000004d;cursor:pointer;padding:0;line-height:1;text-transform:none;letter-spacing:normal}.sidebar-close:hover{background:var(--color-slate);color:var(--color-white);transform:none}.sidebar-close:active{transform:none}.sidebar-content{flex:1;overflow-y:auto;padding:var(--space-6)}.student-detail h3{margin:var(--space-5) 0 var(--space-4);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-slate);border-bottom:2px solid var(--color-line);padding-bottom:var(--space-3)}.student-profile-image-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);padding-bottom:var(--space-5);border-bottom:2px solid var(--color-line)}.student-profile-image{width:160px;height:160px;border-radius:50%;border:3px solid var(--color-charcoal);box-shadow:4px 4px #00000026;object-fit:cover}.student-profile-image-placeholder{width:160px;height:160px;border-radius:50%;border:3px solid var(--color-line);background:var(--color-platinum);color:var(--color-slate);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:700;text-transform:uppercase}.image-upload-controls{display:flex;gap:var(--space-3)}.image-upload-btn{background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:2px 2px #00000026;color:var(--color-charcoal);padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.image-upload-btn:hover{background:var(--color-charcoal);color:var(--color-white);transform:none}.image-remove-btn{background:var(--color-white);border:1px solid var(--color-line);box-shadow:none;color:var(--color-slate);padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.image-remove-btn:hover{background:var(--color-error);border-color:var(--color-error);color:var(--color-white);transform:none}.student-detail h3:first-child{margin-top:0}.student-ai-summary{background:var(--color-platinum);padding:var(--space-5);margin-bottom:var(--space-5);border:2px solid var(--color-charcoal);border-left:4px solid var(--color-accent)}.student-ai-summary h3{margin:0 0 var(--space-4) 0;padding-bottom:0;border-bottom:none;color:var(--color-charcoal)}.student-ai-summary .placeholder-text{color:var(--color-slate);font-style:italic;line-height:1.6;margin:0}.student-ai-summary .summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.student-ai-summary .summary-header h3{margin:0}.student-ai-summary .regenerate-btn{background:var(--color-white);color:var(--color-accent);border:2px solid var(--color-accent);box-shadow:2px 2px 0 var(--color-accent);padding:var(--space-1) var(--space-4);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.student-ai-summary .regenerate-btn:hover{background:var(--color-accent);color:var(--color-white)}.student-ai-summary .regenerate-btn:disabled{background:var(--color-platinum);color:var(--color-slate);border-color:var(--color-slate);box-shadow:none;cursor:not-allowed}.student-ai-summary .summary-loading{color:var(--color-slate);font-style:italic;margin:0}.student-ai-summary .summary-error{color:var(--color-error);margin:0}.student-ai-summary .summary-text{color:var(--color-charcoal);line-height:1.6;margin:0 0 var(--space-3) 0}.student-ai-summary .summary-text p{margin:0 0 var(--space-4) 0}.student-ai-summary .summary-text p:last-child{margin-bottom:0}.student-ai-summary .summary-text ul,.student-ai-summary .summary-text ol{margin:var(--space-3) 0;padding-left:var(--space-6)}.student-ai-summary .summary-text li{margin-bottom:var(--space-2)}.student-ai-summary .summary-text strong{color:var(--color-charcoal)}.student-ai-summary .summary-text em{color:var(--color-slate)}.student-ai-summary .summary-text h1,.student-ai-summary .summary-text h2,.student-ai-summary .summary-text h3{color:var(--color-charcoal);margin:var(--space-4) 0 var(--space-3) 0;font-size:var(--text-lg);border-bottom:none;text-transform:none}.student-ai-summary .summary-text code{background:var(--color-white);padding:1px 4px;border:1px solid var(--color-line);font-family:monospace;font-size:var(--text-xs)}.student-ai-summary .summary-meta{color:var(--color-slate);font-size:var(--text-xs);font-weight:400;margin:0;text-transform:uppercase;letter-spacing:.05em}.student-summary{background:var(--color-platinum);border:2px solid var(--color-charcoal);padding:var(--space-4);box-shadow:3px 3px #00000026}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) 0}.summary-row:not(:last-child){border-bottom:1px solid var(--color-line)}.summary-label{color:var(--color-slate);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.summary-value{color:var(--color-charcoal);font-weight:700}.note-input{display:flex;flex-direction:column;gap:var(--space-3)}.note-input textarea{width:100%;padding:var(--space-4);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-family:var(--font-primary);font-size:var(--text-base);resize:vertical;min-height:80px}.note-input textarea:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.note-input button{align-self:flex-end}.note-input-controls{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.note-date-toggle{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-slate);cursor:pointer}.note-date-toggle input[type=checkbox]{accent-color:var(--color-charcoal)}.note-date-picker{padding:var(--space-2) var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-base);font-family:var(--font-primary)}.note-date-picker:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.note-input-controls button{margin-left:auto}.student-feed{margin-top:var(--space-3)}.feed-filters{display:flex;gap:var(--space-4);margin-bottom:var(--space-4)}.feed-filters label{display:flex;align-items:center;gap:var(--space-3);color:var(--color-slate);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.feed-filters input[type=checkbox]{accent-color:var(--color-charcoal)}.feed-list{display:flex;flex-direction:column;gap:var(--space-4)}.feed-item{background:var(--color-white);border:2px solid var(--color-line);padding:var(--space-4);border-left:4px solid}.feed-item-eod{border-left-color:#2d6a2e}.feed-item-note{border-left-color:var(--color-accent)}.feed-item-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-xs)}.feed-item-type{background:var(--color-platinum);border:1px solid var(--color-line);padding:var(--space-1) var(--space-3);text-transform:uppercase;font-weight:700;letter-spacing:.05em}.feed-item-eod .feed-item-type{color:#2d6a2e}.feed-item-note .feed-item-type{color:var(--color-accent)}.feed-item-author{color:var(--color-slate)}.feed-item-date{color:var(--color-slate);margin-left:auto}.feed-item-content{white-space:pre-wrap;word-break:break-word;line-height:1.6}.feed-item-content a{color:var(--color-charcoal);font-weight:700;text-decoration:underline}.feed-item-content a:hover{color:var(--color-slate)}.feed-item-edited{color:var(--color-slate);font-style:italic}.edit-note-btn{background:var(--color-white);border:1px solid var(--color-line);box-shadow:none;color:var(--color-slate);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.edit-note-btn:hover{background:var(--color-platinum);color:var(--color-charcoal);transform:none}.feed-item-edit-form{display:flex;flex-direction:column;gap:var(--space-3)}.feed-item-edit-textarea{width:100%;padding:var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-family:var(--font-primary);font-size:var(--text-base);resize:vertical;min-height:60px}.feed-item-edit-textarea:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.feed-item-edit-controls{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.feed-item-save-btn{background:var(--color-white);color:var(--color-accent);border:2px solid var(--color-accent);box-shadow:2px 2px 0 var(--color-accent);padding:var(--space-1) var(--space-4);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.feed-item-save-btn:hover{background:var(--color-accent);color:var(--color-white);transform:none}.feed-item-save-btn:disabled{background:var(--color-platinum);color:var(--color-slate);border-color:var(--color-slate);box-shadow:none;cursor:not-allowed}.feed-item-cancel-btn{background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:2px 2px #00000026;color:var(--color-charcoal);padding:var(--space-1) var(--space-4);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.feed-item-cancel-btn:hover{background:var(--color-charcoal);color:var(--color-white);transform:none}.no-feed-items,.feed-loading{color:var(--color-slate);text-align:center;padding:var(--space-7)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--color-white);border:3px solid var(--color-charcoal);box-shadow:6px 6px #0000004d;width:450px;max-width:90vw;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-platinum);border-bottom:3px solid var(--color-charcoal)}.modal-header h2{margin:0;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:none;padding:0;border-bottom:none}.modal-close{background:var(--color-charcoal);color:var(--color-white);width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);border:none;box-shadow:1px 1px #0000004d;cursor:pointer;padding:0;line-height:1;text-transform:none;letter-spacing:normal}.modal-close:hover{background:var(--color-slate);transform:none}.modal-close:active{transform:none}.modal form{padding:var(--space-6)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:var(--space-3);color:var(--color-charcoal);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.form-group input,.form-group select{width:100%;padding:var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-base);font-family:var(--font-primary)}.form-group input:focus,.form-group select:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5)}.btn-secondary{background:var(--color-white);border:2px solid var(--color-charcoal);color:var(--color-charcoal);box-shadow:3px 3px #00000026}.btn-secondary:hover{background:var(--color-charcoal);color:var(--color-white)}.loading{color:var(--color-slate);text-align:center;padding:var(--space-7)}.server-logs{display:flex;flex-direction:column}.server-logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);border-bottom:2px solid var(--color-charcoal);padding-bottom:var(--space-3)}.server-logs-header h2{margin:0;background:none;border-bottom:none;padding:0}.connection-status{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:var(--space-1) var(--space-3);border:2px solid}.status-connected{background:var(--color-white);color:#2d6a2e;border-color:#2d6a2e}.status-connecting{background:var(--color-white);color:#8b6914;border-color:#8b6914}.status-disconnected{background:var(--color-platinum);color:var(--color-slate);border-color:var(--color-slate)}.status-error{background:#fff5f5;color:var(--color-error);border-color:var(--color-error)}.server-logs-controls{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.log-filter{display:flex;align-items:center;gap:var(--space-3)}.log-filter label{font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-slate)}.log-filter select{padding:var(--space-2) var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-lg);font-family:var(--font-primary)}.auto-scroll-toggle{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-slate);cursor:pointer}.auto-scroll-toggle input[type=checkbox]{accent-color:var(--color-charcoal)}.clear-logs-btn{margin-left:auto;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:2px 2px #00000026}.clear-logs-btn:hover{background:var(--color-charcoal);color:var(--color-white);transform:none}.clear-logs-btn:active{transform:none}.logs-container{flex:1;min-height:300px;max-height:400px;overflow-y:auto;background:var(--color-white);border:2px solid var(--color-charcoal);padding:var(--space-3);font-family:Consolas,Monaco,Courier New,monospace;font-size:var(--text-lg);line-height:1.5}.no-logs{color:var(--color-slate);text-align:center;padding:var(--space-7);font-family:inherit}.log-entry{display:flex;gap:var(--space-3);padding:var(--space-1) 0;border-bottom:1px solid var(--color-line)}.log-entry:last-child{border-bottom:none}.log-timestamp{color:var(--color-slate);flex-shrink:0}.log-level{flex-shrink:0;font-weight:700}.log-info .log-level,.log-level.log-info{color:var(--color-charcoal)}.log-warn .log-level,.log-level.log-warn{color:#8b6914}.log-error .log-level,.log-level.log-error{color:var(--color-error)}.log-message{color:var(--color-charcoal);word-break:break-word;white-space:pre-wrap}.testing-panel .panel{margin-bottom:var(--space-5)}.panel-description{color:var(--color-slate);font-size:var(--text-base);margin-bottom:var(--space-4);line-height:1.6}.form-row{margin-bottom:var(--space-4)}.form-row label{display:block;margin-bottom:var(--space-3);color:var(--color-charcoal);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.form-row input[type=date],.form-row select{padding:var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-base);font-family:var(--font-primary)}.primary-btn{background:var(--color-white);color:var(--color-accent);border:3px solid var(--color-accent);box-shadow:4px 4px 0 var(--color-accent);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;font-family:var(--font-primary)}.primary-btn:hover{background:var(--color-accent);color:var(--color-white)}.primary-btn:active{box-shadow:inset 1px 1px 2px #0000004d;transform:translate(1px,1px)}.primary-btn:disabled{background:var(--color-platinum);color:var(--color-slate);border-color:var(--color-slate);box-shadow:none;cursor:not-allowed}.result-message{margin-top:var(--space-4);padding:var(--space-4);border:2px solid}.result-message.success{background:var(--color-white);color:#2d6a2e;border-color:#2d6a2e}.result-message.error{background:#fff5f5;color:var(--color-error);border-color:var(--color-error)}.preview-box{margin-top:var(--space-4);padding:var(--space-4);background:var(--color-white);border:2px solid var(--color-charcoal);font-family:Consolas,Monaco,Courier New,monospace;font-size:var(--text-lg);white-space:pre-wrap;word-break:break-word;color:var(--color-charcoal);overflow-x:auto}.feature-requests-panel{grid-column:span 2}.fr-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);gap:var(--space-4);flex-wrap:wrap}.fr-filter-pills{display:flex;gap:0;border:2px solid var(--color-charcoal)}.fr-pill{background:var(--color-white);border:none;border-right:2px solid var(--color-charcoal);box-shadow:none;color:var(--color-slate);padding:var(--space-2) var(--space-4);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.fr-pill:last-child{border-right:none}.fr-pill:hover{color:var(--color-charcoal);background:var(--color-platinum);transform:none}.fr-pill:active{transform:none;box-shadow:none}.fr-pill.active{background:var(--color-charcoal);color:var(--color-white)}.fr-right-controls{display:flex;gap:var(--space-3);align-items:center}.fr-sort-select{padding:var(--space-2) var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-lg);font-family:var(--font-primary)}.fr-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.fr-table th,.fr-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:2px solid var(--color-line)}.fr-table th{color:var(--color-slate);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;background:var(--color-platinum);border-bottom:2px solid var(--color-charcoal)}.fr-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.fr-table th.sortable:hover{color:var(--color-charcoal)}.status-new{background:var(--color-white);color:var(--color-charcoal);border-color:var(--color-charcoal)}.status-in-progress{background:var(--color-white);color:#8b6914;border-color:#8b6914}.status-done{background:var(--color-white);color:#2d6a2e;border-color:#2d6a2e}.ff-list{display:flex;flex-direction:column;gap:var(--space-4)}.ff-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);background:var(--color-white);border:2px solid var(--color-line)}.ff-info{display:flex;flex-direction:column;gap:var(--space-2)}.ff-name{font-weight:700;font-size:var(--text-base)}.ff-description{color:var(--color-slate);font-size:var(--text-lg)}.ff-toggle{min-width:56px;padding:var(--space-2) var(--space-4);border:2px solid;font-weight:700;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;box-shadow:2px 2px #00000026}.ff-toggle.enabled{background:var(--color-white);color:#2d6a2e;border-color:#2d6a2e}.ff-toggle.disabled{background:var(--color-platinum);color:var(--color-slate);border-color:var(--color-slate)}.ff-toggle:hover:not(:disabled){opacity:.85;transform:none}.ff-toggle:active{transform:none}.ff-toggle:disabled{opacity:.5;cursor:not-allowed}.fr-description-box{background:var(--color-white);border:2px solid var(--color-line);padding:var(--space-5);white-space:pre-wrap;word-break:break-word;line-height:1.6}.fr-inline-select{padding:var(--space-2) var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-lg);font-family:var(--font-primary)}.fr-inline-input{padding:var(--space-2) var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-lg);font-family:var(--font-primary);width:60px}.fr-delete-section{margin-top:var(--space-7);padding-top:var(--space-5);border-top:2px solid var(--color-line)}.fr-textarea{width:100%;padding:var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-base);font-family:var(--font-primary);resize:vertical;min-height:80px}.fr-textarea:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.fr-editable-text{cursor:pointer;padding:var(--space-3);border:1px solid transparent;position:relative}.fr-editable-text:hover{border-color:var(--color-line);background:var(--color-platinum)}.fr-edit-hint{display:none;font-size:var(--text-xs);color:var(--color-slate);margin-left:var(--space-3)}.fr-editable-text:hover .fr-edit-hint{display:inline}.fr-edit-row{display:flex;gap:var(--space-3);align-items:center}.fr-edit-row-col{flex-direction:column;align-items:stretch}.fr-edit-actions{display:flex;gap:var(--space-3);justify-content:flex-end}.fr-edit-input{flex:1;padding:var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-base);font-family:var(--font-primary)}.fr-edit-input:focus{outline:none;box-shadow:inset 0 0 0 1px var(--color-charcoal)}.db-viewer-panel{grid-column:span 2}.db-controls{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-4)}.db-table-select{display:flex;align-items:center;gap:var(--space-3)}.db-table-select label{font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-slate)}.db-table-select select{padding:var(--space-2) var(--space-3);border:2px solid var(--color-charcoal);background:var(--color-white);color:var(--color-charcoal);font-size:var(--text-base);font-family:var(--font-primary)}.db-row-count{font-size:var(--text-sm);color:var(--color-slate);font-weight:700}.db-download-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:2px 2px #00000026}.db-download-btn:hover{background:var(--color-charcoal);color:var(--color-white);transform:none}.db-table-wrapper{overflow-x:auto;border:2px solid var(--color-charcoal);max-height:420px;overflow-y:auto}.db-table{width:100%;border-collapse:collapse;font-size:var(--text-lg);font-family:Consolas,Monaco,Courier New,monospace}.db-table th,.db-table td{padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-line);white-space:nowrap;max-width:300px;overflow:hidden;text-overflow:ellipsis}.db-table th{position:sticky;top:0;color:var(--color-slate);font-weight:700;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;background:var(--color-platinum);border-bottom:2px solid var(--color-charcoal);z-index:1}.db-pk-badge{display:inline-block;margin-left:var(--space-2);padding:0 var(--space-2);font-size:.55rem;background:var(--color-charcoal);color:var(--color-white);vertical-align:middle}.db-table tbody tr:hover{background:var(--color-fog)}.db-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-4)}.db-page-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:2px 2px #00000026}.db-page-btn:hover:not(:disabled){background:var(--color-charcoal);color:var(--color-white);transform:none}.db-page-btn:disabled{background:var(--color-platinum);color:var(--color-slate);border-color:var(--color-slate);box-shadow:none}.db-page-info{font-size:var(--text-sm);font-weight:700;color:var(--color-slate);text-transform:uppercase;letter-spacing:.05em}.randomizer-section{margin-top:var(--space-6);padding-top:var(--space-5);border-top:2px solid var(--color-line)}.randomizer-section h3{margin-top:0}.randomizer-controls{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-5)}.randomizer-row{display:flex;align-items:center;gap:var(--space-3)}.randomizer-row label{font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-slate)}.group-count-control{display:flex;align-items:center;border:2px solid var(--color-charcoal)}.group-count-btn{background:var(--color-white);border:none;box-shadow:none;color:var(--color-charcoal);width:32px;height:32px;font-size:var(--text-base);font-weight:700;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;text-transform:none;letter-spacing:normal}.group-count-btn:hover:not(:disabled){background:var(--color-platinum);transform:none}.group-count-btn:active{transform:none;box-shadow:none}.group-count-btn:disabled{color:var(--color-line);background:var(--color-white);border-color:transparent;cursor:not-allowed}.group-count-value{width:36px;text-align:center;font-weight:700;font-size:var(--text-base);border-left:2px solid var(--color-charcoal);border-right:2px solid var(--color-charcoal);line-height:32px}.shuffle-btn{padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}.randomizer-results{display:flex;flex-direction:column;gap:var(--space-4)}.randomizer-results.multi-group{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-4)}.randomizer-group{background:var(--color-white);border:2px solid var(--color-line)}.randomizer-group-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);background:var(--color-platinum);border-bottom:2px solid var(--color-line);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-charcoal)}.randomizer-group-count{font-size:var(--text-xs);color:var(--color-slate);background:var(--color-white);border:1px solid var(--color-line);padding:var(--space-1) var(--space-3)}.randomizer-list{list-style:none;margin:0;padding:0}.randomizer-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-line);font-size:var(--text-base);counter-increment:randomizer-counter}.randomizer-item:before{content:counter(randomizer-counter) ".";display:inline-block;min-width:1.8em;font-weight:700;color:var(--color-slate)}.randomizer-group{counter-reset:randomizer-counter}.randomizer-item:last-child{border-bottom:none}@media(max-width:768px){.student-cohort-panel,.user-messages,.feature-requests-panel,.db-viewer-panel{grid-column:span 1}.db-controls{flex-direction:column;align-items:stretch}header h1{font-size:var(--text-lg)}button{padding:var(--space-4) var(--space-6);font-size:var(--text-base);width:100%}.tab-navigation,.fr-filter-pills{flex-wrap:wrap}}.app-title{font-size:var(--text-2xl);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-1)}.app-subtitle{color:var(--color-slate);font-size:var(--text-xl);margin-bottom:var(--space-5)}.flow-diagram{max-width:100%}.flow-header{margin-bottom:0}.flow-header h2{font-size:var(--text-2xl);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.flow-subtitle{color:var(--color-slate);font-size:var(--text-xl)}.flow-layout{display:flex;gap:var(--space-6);align-items:flex-start}.flow-sidebar{width:38%;min-width:320px;flex-shrink:0}.flow-main{flex:1;min-width:0}.entity-row{display:flex;margin-bottom:0}.entity-box{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-2);border:2px solid var(--entity-color, var(--color-charcoal));background:var(--color-white);box-shadow:3px 3px #0000001a;margin:0 6%;flex:1;text-align:center}.entity-icon{font-size:var(--text-2xl)}.entity-label{font-size:var(--text-lg);font-weight:700;white-space:pre-line;line-height:1.2;text-transform:uppercase;letter-spacing:.03em}.seq-area{position:relative;margin:0;overflow:visible}.lifeline{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed;transform:translate(-1px);pointer-events:none}.lifeline-dot{position:absolute;width:8px;height:8px;border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s,box-shadow .3s}.lifeline-dot.visible{opacity:.5}.lifeline-dot.active{opacity:1;box-shadow:0 0 8px currentColor}.arrow-row{position:absolute;left:0;right:0;height:2px}.arrow-row.active .arrow-line{animation:arrowSlide .45s ease-out both}.arrow-row.past .arrow-line{opacity:.35}.arrow-row.ltr .arrow-line{transform-origin:left center}.arrow-row.ltr .arrow-head{right:-7px;border-width:5px 0 5px 8px}.arrow-row.rtl .arrow-line{transform-origin:right center}.arrow-row.rtl .arrow-head{left:-7px;right:auto;border-width:5px 8px 5px 0}.arrow-line{position:absolute;height:2px;border-radius:1px;display:flex;align-items:center;justify-content:center}.arrow-label{position:absolute;bottom:6px;font-size:var(--text-lg);font-weight:700;white-space:nowrap;color:var(--color-charcoal);background:var(--color-fog);padding:0 var(--space-2);letter-spacing:.02em}.arrow-head{position:absolute;top:50%;transform:translateY(-50%);width:0;height:0;border-style:solid}@keyframes arrowSlide{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}.self-arrow{position:absolute;border:2px solid;border-left:none;border-radius:0 12px 12px 0}.self-arrow.active{animation:loopFade .45s ease-out both}.self-arrow.past{opacity:.35}.self-arrow .arrow-label{position:absolute;left:calc(100% + 6px);top:50%;transform:translateY(-50%);font-size:var(--text-lg);font-weight:700;white-space:nowrap;background:var(--color-fog);padding:0 var(--space-2);bottom:auto}@keyframes loopFade{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.controls{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;margin-bottom:var(--space-4)}.ctrl-btn{background:var(--color-white);border:2px solid var(--color-charcoal);color:var(--color-charcoal);padding:var(--space-2) var(--space-4);font-size:var(--text-lg);line-height:1;font-family:inherit;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;transition:background .15s}.ctrl-btn:hover:not(:disabled){background:var(--color-platinum)}.ctrl-btn:disabled{opacity:.35;cursor:default}.ctrl-primary{background:var(--color-charcoal);border-color:var(--color-charcoal);color:var(--color-white)}.ctrl-primary:hover:not(:disabled){background:var(--color-slate)!important;border-color:var(--color-slate)!important}.step-counter{margin-left:auto;font-size:var(--text-lg);font-weight:700;color:var(--color-slate);text-transform:uppercase;letter-spacing:.03em}.desc-panel{background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:4px 4px #00000026;padding:var(--space-4) var(--space-5);min-height:60px;opacity:0;transform:translateY(4px);transition:opacity .3s,transform .3s;margin-bottom:var(--space-4)}.desc-panel.visible{opacity:1;transform:translateY(0)}.desc-text{font-size:var(--text-xl);line-height:1.55;margin-bottom:var(--space-3);color:var(--color-charcoal)}.desc-payload{background:var(--color-fog);border:2px solid var(--color-line);padding:var(--space-3) var(--space-4);font-size:var(--text-lg);line-height:1.45;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;color:var(--color-charcoal);overflow-x:auto;white-space:pre}.pros-cons{display:flex;flex-direction:column;gap:var(--space-4)}.pros-col,.cons-col{background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:4px 4px #00000026;padding:var(--space-4) var(--space-5)}.pros-col h3{color:#2d7a4f;font-size:var(--text-lg);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.cons-col h3{color:var(--color-error);font-size:var(--text-lg);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.pros-col ul,.cons-col ul{list-style:none;padding:0}.pros-col li,.cons-col li{font-size:var(--text-xl);line-height:1.45;padding:var(--space-1) 0;color:var(--color-slate)}.pros-col li:before{content:"+ ";color:#2d7a4f;font-weight:700}.cons-col li:before{content:"- ";color:var(--color-error);font-weight:700}.arch-layout{display:flex;gap:var(--space-6);align-items:flex-start}.arch-layout .arch-diagram-col{flex:1;min-width:0}.arch-layout .arch-sidebar-col{width:320px;min-width:280px;flex-shrink:0}@media(max-width:860px){.arch-layout{flex-direction:column}.arch-layout .arch-sidebar-col{width:100%;min-width:unset;order:1}.arch-layout .arch-diagram-col{width:100%;order:0}}.arch-frame-indicator{font-size:var(--text-xl);font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-5);color:var(--color-charcoal)}.arch-frame-number{color:var(--color-slate)}.arch-change-summary{font-size:var(--text-xl);font-weight:700;color:#2d7a4f;margin-bottom:var(--space-3);line-height:1.4}.arch-canvas{position:relative;width:100%;aspect-ratio:16 / 10;background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:4px 4px #00000026;overflow:hidden}.arch-group{position:absolute;border:2px dashed var(--color-line);border-radius:4px;transition:left .4s ease,top .4s ease,width .4s ease,height .4s ease}.arch-group-label{position:absolute;top:-9px;left:8px;font-size:var(--text-lg);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-slate);background:var(--color-white);padding:0 4px;z-index:2}.arch-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-2) var(--space-3);background:var(--color-white);border:2px solid var(--color-charcoal);box-shadow:3px 3px #0000001a;text-align:center;z-index:1;transition:left .4s ease,top .4s ease,opacity .4s ease;animation:archNodeFadeIn .3s ease both}.arch-node-icon{font-size:var(--text-xl);line-height:1}.arch-node-label{font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:pre-line;line-height:1.2}.arch-node-detail{font-size:var(--text-xs);color:var(--color-slate);white-space:nowrap}.arch-node.new{animation:archNodePulse .6s ease both}@keyframes archNodeFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes archNodePulse{0%{opacity:0;transform:translate(-50%,-50%) scale(.8);box-shadow:3px 3px #0000001a}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05);box-shadow:0 0 16px #2d7a4f66}to{opacity:1;transform:translate(-50%,-50%) scale(1);box-shadow:3px 3px #0000001a}}.arch-edges{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.arch-edge-label{font-size:10px;font-weight:700;fill:var(--color-slate);text-transform:uppercase;letter-spacing:.03em;stroke:var(--color-white);stroke-width:4px;paint-order:stroke fill}
