:root{--bg-main: #f3f4f6;--bg-panel: #fcfcfc;--text-main: #374151;--text-muted: #6b7280;--border-color: #d1d5db;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-success: #059669;--bg-success: #ecfdf5;--color-error: #dc2626;--bg-error: #fef2f2;--color-warning: #d97706;--bg-warning: #fffbeb;--bg-overlay: rgba(0, 0, 0, .4);--fs-xs: .75rem;--fs-sm: .8rem;--fs-base: .875rem;--fs-md: 1.1rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-xxl: 2.2rem;--grid-assignment: 120px 3fr 2fr 180px 40px;--grid-submissions: 6fr 2fr 1fr 100px 20px;--grid-submissions-select: 28px 6fr 2fr 1fr 100px 20px}:root.theme-dark{--bg-main: #121212;--bg-panel: #1e1e1e;--text-main: #e5e5e5;--text-muted: #a3a3a3;--border-color: #333333;--color-primary: #0d92d0;--color-primary-hover: #006fa6;--color-success: #4ade80;--bg-success: rgba(74, 222, 128, .1);--color-error: #d53232;--bg-error: rgba(192, 57, 57, .1);--color-warning: #fbbf24;--bg-warning: rgba(251, 191, 36, .1);--bg-overlay: rgba(0, 0, 0, .75)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background-color:var(--bg-main);color:var(--text-main);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:.875rem;line-height:1.5;transition:background-color .3s,color .3s}.badge{display:inline-block;padding:.25rem .5rem;border-radius:2px;font-size:var(--fs-xs);text-transform:uppercase;font-weight:700;border:1px solid var(--border-color);background-color:var(--bg-main);color:var(--text-main)}.badge.finished,.badge.ready{color:var(--color-success);border-color:var(--color-success);background-color:var(--bg-success)}.badge.failed,.badge.error{color:var(--color-error);border-color:var(--color-error);background-color:var(--bg-error)}.badge.executing,.badge.pending,.badge.building{color:var(--color-warning);border-color:var(--color-warning);background-color:var(--bg-warning)}.badge-assignment{display:inline-block;font-size:var(--fs-xs);text-transform:uppercase;font-weight:700;color:var(--text-main);text-align:center;background:none;border:none;padding:0}.icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.4rem;transition:color .2s;display:flex;align-items:center;text-decoration:none}.icon-btn:hover{color:var(--text-main);background-color:color-mix(in srgb,var(--border-color) 15%,transparent);border-radius:4px}.actions-container{display:flex;gap:5px;margin-left:auto}.header-container{display:flex;gap:15px;margin-bottom:1rem;align-items:center}.action-bar{display:flex;justify-content:flex-end;margin-bottom:1.5rem;width:100%}.create-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .8rem;background-color:var(--bg-panel);color:var(--color-primary);border:1px solid var(--color-primary);cursor:pointer;font-weight:600;font-size:var(--fs-base);border-radius:2px;transition:background-color .2s,transform .1s}.create-btn:hover{background-color:var(--bg-main)}.action-btn{display:flex;align-items:center;justify-content:center;padding:.4rem;background-color:var(--bg-main);color:var(--text-muted);border:1px solid var(--border-color);border-radius:4px;text-decoration:none;transition:all .2s;cursor:pointer;font-family:inherit}.action-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 8%,transparent);cursor:pointer}pre,.terminal,.code-block{background-color:var(--bg-main);color:var(--text-main);padding:1rem;margin:0;font-family:Courier New,Courier,monospace;font-size:var(--fs-sm);border:1px solid var(--border-color);border-radius:4px}.arbiter-toast{background-color:var(--bg-panel)!important;color:var(--text-main)!important;border:1px solid var(--border-color)!important}.toast-success{border-left:4px solid var(--color-success)!important}.toast-error{border-left:4px solid var(--color-error)!important}.text-muted{color:var(--text-muted)}.text-primary{color:var(--color-primary);font-weight:600}.font-mono{font-family:Courier New,Courier,monospace;font-size:1.1rem;font-weight:400}.empty-state{min-height:450px;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:var(--bg-panel);border:1px solid var(--border-color);border-radius:6px;text-align:center;padding:3rem}@media(max-width:768px){:root{--grid-assignment: 1fr 100px 30px}}.hljs{background:transparent!important;padding:0}.modal-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--bg-overlay);border:none;cursor:pointer;padding:0}.modal-content{position:relative;background-color:var(--bg-panel);border:1px solid var(--border-color);border-radius:4px;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.2rem 1.5rem;border-bottom:1px solid var(--border-color);background-color:var(--bg-main)}.modal-header h3{margin:0;font-size:var(--fs-base);color:var(--text-muted)}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.2rem 1.5rem;border-top:1px solid var(--border-color);background-color:var(--bg-main)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.6rem 1.2rem;border-radius:4px;font-weight:600;font-size:var(--fs-base);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:none;font-family:inherit;line-height:1;text-decoration:none}.btn-primary{background-color:var(--color-primary);color:#fff;border:1px solid transparent}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--bg-panel);color:var(--text-main);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:color-mix(in srgb,var(--border-color) 20%,transparent)}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.9)}.btn:disabled{opacity:.5!important;cursor:not-allowed!important}.btn-full{width:100%}.expandable-content{cursor:pointer;transition:background-color .15s,transform .1s}.expandable-content:hover{background-color:color-mix(in srgb,var(--border-color) 20%,transparent 80%)!important}.expandable-content:active{transform:scale(.998)}.expandable-content:focus-visible{outline:2px solid var(--color-primary-hover);outline-offset:-2px}.data-table{width:100%;background-color:var(--bg-panel);border:1px solid var(--border-color);border-radius:2px;overflow:hidden;display:flex;flex-direction:column;margin-bottom:2rem}.table-header{display:grid;gap:1rem;padding:1rem 1.5rem;background-color:var(--bg-main);border-bottom:2px solid var(--border-color);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);align-items:center;text-align:left}.table-header>div{display:flex;align-items:center;height:100%}.table-row{display:grid;gap:1rem;padding:1.25rem 1.5rem;background-color:var(--bg-panel);border:none;border-bottom:1px solid var(--border-color);width:100%;text-align:left;color:var(--text-main);font-family:inherit;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);align-items:center;position:relative;overflow:hidden}.table-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background-color:var(--color-primary);transition:width .2s ease}.table-row:last-child{border-bottom:none}.table-row:hover{background-color:color-mix(in srgb,var(--color-primary) 3%,var(--bg-panel) 97%)}.table-row:hover:before{width:4px}.table-row .action-icon{color:var(--text-muted);transition:all .2s;opacity:.5;margin-left:auto}.table-row:hover .action-icon{color:var(--color-primary);transform:translate(4px);opacity:1}.table-row:hover .row-title{color:var(--color-primary)}.row-title{font-weight:600;font-size:var(--fs-md);transition:color .2s;margin:0}.row-subtitle{font-size:var(--fs-sm);color:var(--text-muted);display:block;margin-top:.2rem}.col-id{display:flex;align-items:center;justify-content:center}.col-dates{display:flex;align-items:center;justify-content:center;text-align:center}.col-status{display:flex;align-items:center;justify-content:center}.col-action{display:flex;justify-content:flex-end;align-items:center}.col-checkbox{display:flex;align-items:center;justify-content:center}.col-checkbox input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:1.5px solid var(--border-color);border-radius:3px;background-color:var(--bg-main);cursor:pointer;position:relative;margin:0;flex-shrink:0;transition:border-color .15s,background-color .15s}.col-checkbox input[type=checkbox]:hover:not(:checked){border-color:var(--color-primary)}.col-checkbox input[type=checkbox]:checked{background-color:var(--color-primary);border-color:var(--color-primary)}.col-checkbox input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:2px solid white;border-top:none;border-left:none;transform:rotate(40deg)}.grid-assignments{display:grid!important;grid-template-columns:var(--grid-assignment)}.grid-submissions{display:grid!important;grid-template-columns:var(--grid-submissions)}.grid-submissions-select{display:grid!important;grid-template-columns:var(--grid-submissions-select)}@media(max-width:768px){.grid-assignments,.grid-submissions{grid-template-columns:1fr auto!important}.grid-submissions-select{grid-template-columns:28px 1fr auto!important}}.panel-container{padding:1.5rem;background-color:var(--bg-panel);border:1px solid var(--border-color);border-radius:4px;width:100%;max-width:90vw}.panel-header{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:1rem;align-items:center;border-bottom:1px solid var(--border-color);padding-bottom:.8rem}.panel-header h2{margin:0;font-weight:300;color:var(--text-main);flex-grow:1}.panel-form-container{display:flex;flex-wrap:wrap;align-items:stretch;column-gap:2rem;row-gap:1rem}.base-form{display:flex;flex-direction:column;gap:1.2rem;flex:0 0 60%;min-width:400px;margin-bottom:0}.form-row{display:flex;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.2rem;flex:1}.form-group label,.field-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:400;margin-bottom:0}.input-field,input[type=text],input[type=number],input[type=datetime-local],select{padding:.5rem;background-color:var(--bg-main);border:1px solid var(--border-color);color:var(--text-main);border-radius:2px;width:100%;box-sizing:border-box;font-family:inherit;font-size:var(--fs-base);margin-bottom:0;transition:border-color .2s}input:focus,select:focus{outline:none;border-color:var(--color-primary)}.readonly-input{background-color:var(--bg-panel)!important;color:var(--text-muted)!important;cursor:not-allowed!important;border-style:dashed!important}.hint-text{color:var(--text-muted);font-size:var(--fs-xs);margin-top:.2rem;line-height:1.1}.tabs-container{display:flex;gap:1rem}.tabs-container.bordered{border-bottom:1px solid var(--border-color);margin-bottom:1.5rem;padding:0 1rem;gap:0}.tab-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;font-family:inherit}.tab-btn:hover{color:var(--text-main)}.tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-btn-md{padding:.75rem 1.5rem;font-size:var(--fs-base)}.tab-btn-md.active{font-weight:500}.tab-btn-sm{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;padding:.2rem 0}.tab-btn-sm:hover{background-color:color-mix(in srgb,var(--border-color) 20%,transparent);border-radius:4px}.server-clock.svelte-jy0tf2{display:flex;align-items:center;gap:.4rem;color:var(--text-muted);font-family:monospace;font-size:var(--fs-base);background-color:var(--bg-main);padding:.4rem .8rem;border-radius:6px;border:1px solid var(--border-color);-webkit-user-select:none;user-select:none}.time.svelte-jy0tf2{font-weight:500;letter-spacing:.5px}.app-layout.svelte-12qhfyh{display:flex;flex-direction:column;height:100vh;overflow:hidden}.content-layout.svelte-12qhfyh{display:flex;flex-direction:row;flex:1;overflow:hidden}main.svelte-12qhfyh{flex:1;overflow-y:auto;background-color:var(--bg-main)}.main-container.svelte-12qhfyh{padding:1.5rem .5rem;max-width:90%;margin:0 auto;width:100%}.side-nav.svelte-12qhfyh{width:250px;flex-shrink:0;border-right:1px solid var(--border-color);background-color:var(--bg-panel);display:flex;flex-direction:column;padding:1.2rem 0 0;z-index:10;overflow:hidden}.sidebar-scrollable.svelte-12qhfyh{flex:1;overflow-y:auto;padding-bottom:2rem;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.sidebar-scrollable.svelte-12qhfyh::-webkit-scrollbar{width:4px}.sidebar-scrollable.svelte-12qhfyh::-webkit-scrollbar-track{background:transparent}.sidebar-scrollable.svelte-12qhfyh::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:4px}.brand.svelte-12qhfyh{display:flex;align-items:center;gap:1.5rem;margin-left:1.5rem}.brand-text.svelte-12qhfyh{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.02em;color:var(--text-main);text-decoration:none}.sidebar-section-title.svelte-12qhfyh{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:1.25rem .8rem .4rem;opacity:.85}.sidebar-section-title.svelte-12qhfyh:first-of-type{margin-top:.2rem}.nav-links.svelte-12qhfyh{display:flex;flex-direction:column;gap:.2rem;padding:0 .8rem}.nav-links.svelte-12qhfyh a:where(.svelte-12qhfyh){display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--text-muted);font-weight:500;font-size:var(--fs-sm);padding:.6rem .8rem;border-radius:6px;transition:all .2s cubic-bezier(.4,0,.2,1)}.nav-links.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{color:var(--text-main);background-color:var(--bg-main)}.nav-links.svelte-12qhfyh a:where(.svelte-12qhfyh) span:where(.svelte-12qhfyh){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}.nav-links.svelte-12qhfyh a.active:where(.svelte-12qhfyh){color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 8%,transparent);font-weight:600}.course-group.svelte-12qhfyh{display:flex;flex-direction:column;gap:.1rem;position:relative}.course-link.svelte-12qhfyh{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--text-muted);font-weight:500;font-size:var(--fs-sm);padding:.4rem .8rem;border-radius:6px;transition:all .2s cubic-bezier(.4,0,.2,1)}.course-link.svelte-12qhfyh:hover{color:var(--text-main);background-color:var(--bg-main)}.course-link.active.svelte-12qhfyh{color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 8%,transparent)}.course-link.svelte-12qhfyh svg{color:var(--text-muted);flex-shrink:0;transition:color .2s}.course-link.active.svelte-12qhfyh svg{color:var(--color-primary)}.course-text-wrapper.svelte-12qhfyh{display:flex;flex-direction:column;min-width:0;flex:1;text-align:left;line-height:1.2}.course-name.svelte-12qhfyh{font-weight:600;font-size:var(--fs-sm);color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}.course-link.active.svelte-12qhfyh .course-name:where(.svelte-12qhfyh){color:var(--color-primary)}.course-code.svelte-12qhfyh{font-size:.72rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s;margin-top:.05rem}.course-link.archived.svelte-12qhfyh{opacity:.65}.course-link.archived.svelte-12qhfyh .course-name:where(.svelte-12qhfyh){font-style:italic}.sub-nav.svelte-12qhfyh{display:flex;flex-direction:column;margin-left:2.3rem;margin-top:.25rem;border-left:1px solid var(--border-color);padding-left:.4rem;gap:.15rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.sub-link.svelte-12qhfyh{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;font-size:.76rem;color:var(--text-muted);text-decoration:none;border-radius:4px;transition:all .2s cubic-bezier(.4,0,.2,1);text-align:left}.sub-link.svelte-12qhfyh:hover{color:var(--text-main);background-color:var(--bg-main)}.sub-link.active.svelte-12qhfyh{color:var(--color-primary);font-weight:600;background-color:transparent}.sub-text.svelte-12qhfyh{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.top-nav.svelte-12qhfyh{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 2rem;height:60px;border-bottom:1px solid var(--border-color);background-color:var(--bg-panel);flex-shrink:0;z-index:20}.user-controls.svelte-12qhfyh{display:flex;align-items:center;gap:1.2rem;justify-content:flex-end}.actions-group.svelte-12qhfyh{display:flex;align-items:center;gap:.5rem}.icon-action-btn.svelte-12qhfyh{background:none;border:1px solid transparent;color:var(--text-muted);cursor:pointer;padding:.5rem;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.icon-action-btn.svelte-12qhfyh:hover{color:var(--text-main);background-color:var(--bg-main);border-color:var(--border-color)}.divider.svelte-12qhfyh{width:1px;height:24px;background-color:var(--border-color);margin-left:1rem}.user-info.svelte-12qhfyh{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.user-name.svelte-12qhfyh{font-size:var(--fs-base);font-weight:600;color:var(--text-main)}.logout-form.svelte-12qhfyh{margin:0}.logout-btn.svelte-12qhfyh{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:var(--text-muted);font-weight:500;cursor:pointer;padding:.5rem;border-radius:4px;transition:all .2s}.logout-btn.svelte-12qhfyh:hover{color:var(--color-error);background-color:var(--bg-error)}.clock.svelte-12qhfyh{display:flex;justify-content:center;align-items:center}@media(max-width:768px){.content-layout.svelte-12qhfyh,.app-layout.svelte-12qhfyh{flex-direction:column}.side-nav.svelte-12qhfyh{width:100%;height:auto;border-right:none;border-bottom:1px solid var(--border-color);padding:.8rem 1rem;flex-direction:row;justify-content:space-between;align-items:center;overflow:visible}.sidebar-scrollable.svelte-12qhfyh{overflow-y:visible;padding-bottom:0;width:100%}.brand.svelte-12qhfyh{margin-bottom:0;padding:0}.nav-links.svelte-12qhfyh{flex-direction:row;padding:0;align-items:center;gap:.4rem;width:100%;justify-content:space-around}.sidebar-section-title.svelte-12qhfyh{display:none}.course-group.svelte-12qhfyh:not(.selected){display:none}.course-link.svelte-12qhfyh{margin:0;padding:.5rem .7rem}.nav-links.svelte-12qhfyh a:where(.svelte-12qhfyh) span:where(.svelte-12qhfyh){display:none}.course-text-wrapper.svelte-12qhfyh{display:none}.top-nav.svelte-12qhfyh{padding:0 1rem}.logout-text.svelte-12qhfyh{display:none}.main-container.svelte-12qhfyh{padding:1.5rem 1rem}}
