.field-row-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:0 var(--space-4);align-items:start}.col-span-1{grid-column:span 1}.col-span-2{grid-column:span 2}.col-span-3{grid-column:span 3}.col-span-4{grid-column:span 4}.option-choice-list{display:flex;flex-direction:column;gap:var(--space-2)}.option-choice{display:flex;align-items:center;gap:8px;font-size:var(--text-body-size);color:hsl(var(--foreground));cursor:pointer}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-4)}.field-label{font-size:var(--text-body-sm-size);font-weight:600;color:hsl(var(--foreground));margin-bottom:var(--space-2);display:flex;align-items:center;gap:3px}.field-label .req{color:var(--semantic-danger);font-weight:700}.field-hint{font-size:var(--text-caption-size);color:hsl(var(--muted-foreground))}.field-error{display:none;align-items:center;gap:5px;font-size:var(--text-caption-size);color:var(--semantic-danger);margin-top:var(--space-2);padding-top:5px}.field-error.show{display:flex}.field-error i{font-size:var(--text-body-size);flex-shrink:0}.field-input,.field-textarea,.input{width:100%;padding:10px 13px;border:1px solid hsl(var(--input));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));font-size:var(--text-body-size);line-height:var(--text-body-line);font-family:inherit;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field-textarea{min-height:80px;resize:vertical}.field-input-sm{height:30px;box-sizing:border-box;padding-top:0;padding-bottom:0}.field-input:focus,.field-textarea:focus,.input:focus{border-color:hsl(var(--primary));box-shadow:var(--focus-ring)}.field-input.invalid,.field-input.invalid:focus,.field-textarea.invalid,.field-textarea.invalid:focus,.input.is-invalid{border-color:var(--semantic-danger);box-shadow:0 0 0 3px hsl(0 72% 51% / .12)}.field-input:focus::placeholder,.field-textarea:focus::placeholder,.field-input:not(:placeholder-shown)::placeholder,.field-textarea:not(:placeholder-shown)::placeholder{color:transparent}.rte{border:1px solid hsl(var(--input));border-radius:var(--radius);background:hsl(var(--card));transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.rte:focus-within{border-color:hsl(var(--primary));box-shadow:var(--focus-ring)}.rte-toolbar{display:flex;align-items:center;gap:2px;padding:6px 8px;border-bottom:1px solid hsl(var(--input));background:hsl(var(--muted) / .4);flex-wrap:wrap}.rte-btn{width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:hsl(var(--muted-foreground));display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:var(--text-body-size);transition:background .12s, color .12s;flex-shrink:0}.rte-btn:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.rte-btn.active{background:hsl(var(--primary) / .12);color:hsl(var(--primary))}.rte-sep{width:1px;height:18px;background:hsl(var(--border));margin:0 4px;flex-shrink:0}.rte-body{box-sizing:border-box;min-height:200px;padding:var(--space-3) var(--space-4);font-size:var(--text-body-size);line-height:var(--text-body-line);color:hsl(var(--foreground));outline:none}.rte-body:empty::before{content:attr(data-placeholder);color:hsl(var(--muted-foreground));pointer-events:none}.rte-body ul,.rte-body ol{margin:0 0 0.6em 1.25em;padding:0}.rte-body>div,.rte-body>p{margin:0 0 0.6em}.rte-body>div:last-child,.rte-body>p:last-child{margin-bottom:0}.field-select,.select-input{appearance:none;width:100%;padding:11px 38px 11px 14px;border:1px solid hsl(var(--input));border-radius:var(--radius);font-size:var(--text-body-size);line-height:var(--text-body-line);font-family:inherit;color:hsl(var(--foreground));background:hsl(var(--card));outline:none;cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field-select:focus,.select-input:focus{border-color:hsl(var(--primary));box-shadow:var(--focus-ring)}.field-select:disabled,.select-input:disabled{opacity:0.55;cursor:not-allowed;background:hsl(var(--muted))}.field-select.invalid,.select-input.invalid{border-color:var(--semantic-danger);box-shadow:0 0 0 3px hsl(0 72% 51% / .12)}.select-wrap{position:relative}.select-chev{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:hsl(var(--muted-foreground));pointer-events:none}.avatar-upload{display:flex;align-items:center;gap:var(--space-4)}.avatar-upload-preview{width:38px;height:38px;border-radius:50%;flex-shrink:0;background:hsl(var(--muted));color:hsl(var(--muted-foreground));display:flex;align-items:center;justify-content:center;font-size:var(--text-body-size);background-size:cover;background-position:center;overflow:hidden}.avatar-upload-preview img{width:100%;height:100%;object-fit:cover}.avatar-upload-actions{display:flex;align-items:center;gap:var(--space-3)}.role-group{border:1px solid hsl(var(--border));border-radius:var(--radius-lg);padding:var(--space-5)}.role-group+.role-group{margin-top:var(--space-5)}.role-group-title{font-size:var(--text-body-size);font-weight:600;color:hsl(var(--foreground))}.role-group-hint{font-weight:400;color:hsl(var(--muted-foreground));font-size:var(--text-caption-size);margin-left:6px}.role-group-sub{font-size:var(--text-caption-size);color:hsl(var(--muted-foreground));margin-top:2px;margin-bottom:var(--space-3)}.field-check-wrap{position:relative}.field-check-wrap .field-input{padding-right:38px}.field-valid-tick{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--semantic-success);font-size:var(--text-h5-size);pointer-events:none}.field-invalid-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--semantic-danger);font-size:var(--text-h5-size);pointer-events:none}.select-wrap.field-check-wrap .select-input{padding-right:60px}.select-wrap .field-valid-tick,.select-wrap .field-invalid-icon{right:34px}.switch{position:relative;width:32px;height:18px;flex-shrink:0;cursor:pointer}.switch-track{position:absolute;inset:0;background:hsl(30 8% 78%);border-radius:var(--radius-full);transition:background .22s}.switch-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.28);transition:left .22s}.switch.on .switch-track{background:var(--semantic-success)}.switch.on .switch-thumb{left:16px}.switch-wrap{display:flex;align-items:center;gap:var(--space-3)}.switch-wrap-label{font-size:var(--text-body-size);color:hsl(var(--foreground))}.bulk-edit-table{margin-top:4px}.bulk-edit-head,.bulk-edit-row{display:grid;grid-template-columns:1fr 170px 170px;gap:var(--space-4);align-items:center}.bulk-edit-row.two-col{grid-template-columns:1fr 170px}.bulk-edit-head.edit-cols,.bulk-edit-row.edit-cols{grid-template-columns:1fr 110px 150px 150px 150px}.bulk-edit-head.detail-cols,.bulk-edit-row.detail-cols{grid-template-columns:1fr 110px 120px 110px 120px 110px}.bulk-edit-head.detail-cols.no-lang,.bulk-edit-row.detail-cols.no-lang{grid-template-columns:1fr 110px 120px 110px 120px}.bulk-edit-head.reassign-cols,.bulk-edit-row.reassign-cols{grid-template-columns:1fr 130px 150px 110px 150px}.bulk-edit-head{font-size:var(--text-caption-size);font-weight:700;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.06em;padding-bottom:var(--space-3);border-bottom:1px solid hsl(var(--border) / .6)}.bulk-edit-head>div{white-space:nowrap}.bulk-edit-row{padding:var(--space-4) 0;border-bottom:1px solid hsl(var(--border) / .4)}.bulk-edit-row:last-child{border-bottom:none}.bulk-edit-course{font-size:var(--text-body-sm-size);color:hsl(var(--foreground));line-height:1.4;display:flex;align-items:flex-start;gap:var(--space-3)}.apply-all-row{background:hsl(var(--primary) / .05);border-radius:var(--radius-sm);border-bottom:none !important}.bulk-edit-course-icon{width:24px;flex-shrink:0;color:hsl(var(--muted-foreground));display:flex;align-items:center;justify-content:center;font-size:var(--text-body-size)}.bulk-edit-row .field-input{margin-bottom:0;width:100%}.bulk-edit-static-date{font-size:var(--text-body-sm-size);color:hsl(var(--muted-foreground))}.seg-toggle{display:inline-flex;align-items:center;align-self:flex-start;justify-self:start;position:relative;border:1px solid hsl(var(--border));border-radius:var(--radius-full);background:hsl(var(--card));padding:3px;height:30px;box-sizing:border-box;flex-shrink:0}.seg-toggle .seg-slider{display:none}.seg-opt{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 var(--space-4);border:none;background:transparent;border-radius:var(--radius-full);font-family:inherit;font-size:var(--text-body-size);color:hsl(var(--muted-foreground));cursor:pointer;white-space:nowrap;transition:background .15s, color .15s}.seg-opt:hover:not(.active){color:hsl(var(--foreground))}.seg-opt.active{background:hsl(var(--primary));color:#fff}.filter-toggle{display:flex;gap:0;background:hsl(var(--card));border:none;border-radius:var(--radius-full);padding:3px;position:relative;flex-shrink:0}.toggle-slider{display:none}.ftab{font-size:var(--text-caption-size);font-weight:500;padding:5px 15px;border-radius:var(--radius-full);border:none;background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;font-family:inherit;white-space:nowrap;transition:color .18s, background .18s}.ftab:hover:not(.active){color:hsl(var(--foreground))}.ftab.active{color:hsl(var(--primary));font-weight:600;background:hsl(var(--primary) / .1)}.filter-row{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.filter-field-wrap{flex:1 1 26%;min-width:0}.filter-op-wrap{flex:1 1 22%;min-width:0}.filter-value-wrap{flex:1 1 32%;min-width:0;display:flex;align-items:center;gap:var(--space-2)}.filter-value-range{display:flex;align-items:center;gap:var(--space-2);min-width:0}.filter-value-range .filter-value-input{min-width:0}.filter-value-sep{color:hsl(var(--muted-foreground));font-size:var(--text-caption-size);flex-shrink:0}.filter-remove-btn{flex:0 0 auto}.filter-empty-text{margin:0 0 var(--space-3)}.search-wrap{display:flex;align-items:center;flex-shrink:0;box-sizing:border-box;overflow:hidden;border:1px solid hsl(var(--border));border-radius:var(--radius-full);background:hsl(var(--card));transition:border-color .25s ease, width .3s ease}.search-wrap:focus-within{border-color:hsl(var(--primary))}.search-icon-btn{width:40px;height:40px;box-sizing:border-box;border-radius:50%;border:none;background:transparent;display:flex;align-items:center;justify-content:center;color:hsl(var(--primary));font-size:var(--text-h6-size);cursor:pointer;flex-shrink:0;padding:0;transition:background var(--transition-fast),color var(--transition-fast)}.search-icon-btn:hover{background:hsl(var(--primary));color:#fff}.search-wrap input{width:0;max-width:0;padding:0;border:none;background:transparent;font-size:var(--text-body-sm-size);font-family:inherit;color:hsl(var(--foreground));outline:none;box-shadow:none;opacity:0;pointer-events:none;transition:max-width 0.28s cubic-bezier(0.4, 0, 0.2, 1),padding 0.28s,opacity 0.2s}.search-wrap input:focus,.search-wrap input:focus-visible{outline:none !important;box-shadow:none !important;border-color:transparent !important}.search-wrap:focus-within input,.search-wrap.has-value input{width:240px;max-width:240px;padding:7px 6px;opacity:1;pointer-events:auto}.search-clear-btn{display:none;align-items:center;justify-content:center;width:28px;height:40px;border:none;background:transparent;color:hsl(var(--muted-foreground));font-size:var(--text-h6-size);cursor:pointer;flex-shrink:0;padding:0}.search-wrap.has-value .search-clear-btn{display:flex}.autocomplete-wrap{position:relative}.autocomplete-wrap:has(.suggest-list.open){z-index:1000}.multi-input{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%;min-height:44px;padding:6px 10px;border:1px solid hsl(var(--input));border-radius:var(--radius);background:hsl(var(--card));cursor:text;transition:border-color .15s, box-shadow .15s}.multi-input.focused{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.multi-input:has(.chip) input::placeholder{color:transparent}.multi-input input{border:none;outline:none;flex:1;min-width:130px;font-size:var(--text-body-size);line-height:var(--text-body-line);font-family:inherit;padding:5px 2px;background:transparent;color:hsl(var(--foreground))}.multi-input input::placeholder{color:hsl(30 8% 65%)}.chip{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-caption-size);font-weight:500;background:var(--role-learner-bg);color:hsl(234 52% 42%);border-radius:7px;padding:5px 7px 5px 11px}.chip i{font-size:var(--text-body-sm-size);cursor:pointer;color:hsl(var(--primary) / .7);transition:color .12s}.chip i:hover{color:var(--semantic-danger)}.suggest-list{position:absolute;top:calc(100% + 5px);left:0;right:0;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,0.12),0 2px 6px rgba(0,0,0,0.06);padding:5px;z-index:1000;max-height:248px;overflow-y:auto;display:none}.suggest-list.open{display:block}.suggest-list.floating{position:fixed;top:0;left:0;right:auto}.suggest-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;transition:background .1s}.suggest-item:hover{background:hsl(var(--muted))}.suggest-avatar{width:30px;height:30px;border-radius:50%;background:var(--role-learner-bg);color:hsl(var(--primary));display:flex;align-items:center;justify-content:center;font-size:var(--text-caption-size);font-weight:600;flex-shrink:0}.suggest-name{font-size:var(--text-body-sm-size);font-weight:500;color:hsl(var(--foreground))}.suggest-email{font-size:var(--text-caption-size);color:hsl(var(--muted-foreground));margin-top:1px}.suggest-empty{padding:var(--space-3);font-size:var(--text-body-sm-size);color:hsl(var(--muted-foreground));text-align:center}.suggest-head{font-size:var(--text-overline-size);line-height:var(--text-overline-line);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:hsl(var(--muted-foreground));padding:4px 10px 2px}.suggest-match{font-size:var(--text-body-sm-size);line-height:var(--text-body-sm-line);color:hsl(var(--foreground))}.suggest-match mark{background:transparent;color:hsl(var(--primary));font-weight:600}.crit-section{border:1px solid #ECEAE7;border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-5);transition:border-color .16s, box-shadow .16s}.crit-section.open{box-shadow:var(--shadow-sm)}.crit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5)}.crit-title{font-size:var(--text-h6-size);line-height:var(--text-h6-line);font-weight:600;color:hsl(var(--foreground));display:flex;align-items:center;gap:3px}.crit-title .req{color:var(--semantic-danger);font-weight:700}.crit-sub{font-size:var(--text-body-sm-size);line-height:var(--text-body-sm-line);color:hsl(var(--muted-foreground));margin-top:6px}.crit-body{overflow:hidden;max-height:0;margin-top:0;transition:max-height 0.34s cubic-bezier(0.4, 0, 0.2, 1),margin-top 0.34s cubic-bezier(0.4, 0, 0.2, 1)}.crit-section.open .crit-body{margin-top:var(--space-5)}.crit-rows{display:flex;flex-direction:column;gap:var(--space-3)}.crit-row{display:flex;gap:var(--space-5);align-items:flex-start}.cr-select-wrap{position:relative;flex:0 0 300px}.mc-lang-field .cr-select-wrap{flex:0 0 auto;width:100%}.cr-select-wrap .ti{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:hsl(var(--muted-foreground));pointer-events:none;font-size:var(--text-h6-size);transition:transform .18s}.cr-select-wrap.dd-open .ti{transform:translateY(-50%) rotate(180deg)}.cr-select-wrap.dd-open .field-select{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.cr-dd-menu{background:#fff;border:1px solid hsl(var(--border) / .55);border-radius:10px;box-shadow:var(--shadow-dropdown);padding:6px;z-index:100000;max-height:300px;overflow-y:auto}.cr-dd-item{display:flex;align-items:center;gap:var(--space-2);padding:9px 12px 9px 8px;font-size:var(--text-body-size);line-height:var(--text-body-line);color:hsl(var(--foreground));border-radius:7px;cursor:pointer;transition:background .12s, color .12s}.cr-dd-item:hover{background:hsl(var(--primary) / .1);color:hsl(var(--primary))}.cr-dd-tick{font-size:var(--text-h6-size);flex-shrink:0;opacity:0;color:hsl(var(--primary))}.cr-dd-item.selected{color:hsl(var(--primary));font-weight:500}.cr-dd-item.selected .cr-dd-tick{opacity:1}.cr-dd-item.disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.cr-dd-item.disabled:hover{background:transparent;color:hsl(var(--foreground))}.crit-value-box{flex:1;min-height:46px;position:relative;display:flex;align-items:center;border:1px solid hsl(var(--input));border-radius:var(--radius);background:hsl(var(--card));padding:8px 38px 8px 14px}.crit-val-chev{position:absolute;right:12px;top:14px;color:hsl(var(--muted-foreground));pointer-events:none;font-size:var(--text-h6-size)}.crit-value-empty{color:hsl(30 8% 65%);font-size:var(--text-body-size)}.crit-value-box.active{align-items:flex-start;padding:6px 38px 6px 10px}.crit-val-wrap{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:100%;position:relative}.crit-val-wrap:has(.chip) .crit-val-input::placeholder{color:transparent}.crit-val-input{flex:1;min-width:60px;border:none;outline:none;background:transparent;font-family:inherit;font-size:var(--text-body-size);line-height:var(--text-body-line);color:hsl(var(--foreground));padding:5px 2px}.crit-val-input::placeholder{color:hsl(30 8% 65%)}.crit-del{flex-shrink:0;width:26px;height:26px;margin-top:10px;display:none;align-items:center;justify-content:center;border:1px solid transparent;background:transparent;border-radius:7px;color:#B4B2AA;font-size:var(--text-body-size);line-height:1;padding:0;cursor:pointer;transition:background .12s, color .12s, border-color .12s}.crit-del:hover{background:hsl(var(--primary));border-color:hsl(var(--primary));color:#fff}.crit-row:not(:only-child) .crit-del{display:flex}.crit-add-wrap{display:flex;justify-content:flex-end;margin-top:var(--space-4)}.crit-add-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;font-family:inherit;color:hsl(var(--primary));background:hsl(var(--card));border:1px solid hsl(var(--primary) / .4);border-radius:50%;padding:0;cursor:pointer;transition:background .12s, color .12s}.crit-add-btn i{font-size:var(--text-body-lg-size)}.crit-add-btn:hover{background:hsl(var(--primary));color:#fff;border-color:hsl(var(--primary))}.manual-search-wrap{position:relative;max-width:460px}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4);align-items:center}.chip-more{display:inline-flex;align-items:center;font-size:var(--text-caption-size);font-weight:500;background:hsl(var(--muted));color:hsl(var(--muted-foreground));border:none;border-radius:7px;padding:5px 11px;cursor:pointer;font-family:inherit;transition:background .12s, color .12s}.chip-more:hover{background:hsl(var(--primary) / .12);color:hsl(var(--primary))}.picker-empty{padding:var(--space-6);text-align:center;color:hsl(var(--muted-foreground));font-size:var(--text-body-sm-size)}.s1-split{display:flex;flex-direction:row;height:calc(100% + var(--space-6) * 2);margin:calc(-1 * var(--space-6)) -28px}.s1-col-left{display:flex;flex-direction:column;min-width:0;flex:1 1 50%;border-right:1px solid hsl(var(--border) / .5);min-height:0}.s1-col-right{display:flex;flex-direction:column;flex:1 1 50%;min-width:0;min-height:0;background:hsl(var(--muted) / .5)}.s1-toolbar{padding:var(--space-3) var(--space-5) var(--space-2);flex-shrink:0;display:flex;align-items:center;gap:var(--space-3)}.s1-view-toggle{flex-shrink:0}.s1-view-toggle .seg-opt{padding:0 var(--space-3);font-size:var(--text-h6-size);line-height:1}.s1-list-search-row{padding:0 var(--space-5) var(--space-3);flex-shrink:0}#acSearchWrap,#alpSearchWrap{width:100%;padding-right:var(--space-2)}#acSearchWrap input,#alpSearchWrap input{width:100%;max-width:none;padding:4px 6px;opacity:1;pointer-events:auto}#acSearchWrap .search-icon-btn,#acSearchWrap .search-clear-btn,#alpSearchWrap .search-icon-btn,#alpSearchWrap .search-clear-btn{width:28px;height:28px;font-size:var(--text-h6-size)}.s1-right-hdr{padding:var(--space-3) var(--space-5);border-bottom:1px solid hsl(var(--border) / .5);font-size:var(--text-overline-size);line-height:var(--text-overline-line);font-weight:700;color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}#s1RightCount{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--semantic-success-bg);color:var(--semantic-success);font-size:var(--text-caption-size);letter-spacing:0}#acSelSearchWrap .search-icon-btn,#acSelSearchWrap .search-clear-btn,#alpSelSearchWrap .search-icon-btn,#alpSelSearchWrap .search-clear-btn{width:26px;height:26px;font-size:var(--text-body-size)}#acSelSearchWrap:focus-within input,#acSelSearchWrap.has-value input,#alpSelSearchWrap:focus-within input,#alpSelSearchWrap.has-value input{padding:4px 6px}.s1-clear-btn{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:hsl(var(--muted-foreground));background:none;border:none;cursor:pointer;font-size:var(--text-body-size);flex-shrink:0;transition:background .12s, color .12s}.s1-clear-btn:hover{background:hsl(var(--muted));color:hsl(var(--foreground))}.s1-right-list{flex:1;overflow-y:auto;padding:0 var(--space-5);display:flex;flex-direction:column}.s1-right-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:hsl(var(--muted-foreground));font-size:var(--text-caption-size);line-height:var(--text-body-line);padding:var(--space-8) var(--space-5);text-align:center}.s1-right-empty svg{color:hsl(var(--border))}.s1-sel-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-2);border-radius:var(--radius-sm);border-bottom:1px solid hsl(var(--border) / .4);transition:background .12s}.s1-sel-item:last-child{border-bottom:none}.s1-sel-item:hover{background:hsl(var(--muted) / .6)}.s1-sel-icon{width:20px;height:20px;color:hsl(var(--primary));display:flex;align-items:center;justify-content:center;font-size:var(--text-body-lg-size);flex-shrink:0}.s1-sel-body{flex:1;min-width:0}.s1-sel-name{font-size:var(--text-body-size);font-weight:500;color:hsl(var(--foreground));line-height:var(--text-body-line)}.s1-sel-meta{display:flex;align-items:center;margin-top:4px;flex-wrap:wrap}.s1-sel-meta>span+span::before{content:"|";padding:0 8px;color:hsl(var(--border));font-weight:400}.s1-sel-tag,.s1-sel-ver{font-size:var(--text-caption-size);line-height:var(--text-caption-line);color:hsl(var(--muted-foreground))}.s1-sel-remove{border:none;background:transparent;color:hsl(var(--muted-foreground));font-size:var(--text-body-sm-size);width:26px;height:26px;border-radius:7px;padding:0;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:background .12s, color .12s, opacity .12s}.s1-sel-item:hover .s1-sel-remove,.s1-sel-remove:focus-visible{opacity:1}.s1-sel-remove:hover{background:hsl(var(--primary));color:#fff}.catalog-tree,.course-empty{flex:1;overflow-y:auto;padding:0 var(--space-3)}.course-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:hsl(var(--muted-foreground));font-size:var(--text-body-sm-size);padding:var(--space-8);text-align:center}.course-empty svg{color:hsl(var(--border))}.tree-group-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);cursor:pointer;user-select:none;transition:background .12s}.tree-group-row:hover{background:hsl(var(--muted))}.tree-chevron{font-size:var(--text-body-size);color:hsl(var(--muted-foreground));transition:transform .18s;width:14px;flex-shrink:0}.tree-chevron.open{transform:rotate(90deg)}.tree-grp-icon{font-size:var(--text-body-lg-size);color:hsl(var(--muted-foreground));flex-shrink:0}.tree-grp-name{flex:1;font-size:var(--text-body-size);font-weight:600;color:hsl(var(--foreground))}.tree-grp-badge{font-size:var(--text-caption-size);color:hsl(var(--muted-foreground));font-weight:500;flex-shrink:0}.tree-course-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background .12s}.tree-course-row:hover:not(.assigned){background:hsl(var(--muted) / .6)}.tree-course-row.selected{background:hsl(var(--primary) / .06)}.tree-course-row.assigned{cursor:default}.tree-course-row.assigned .tree-course-name{color:hsl(var(--muted-foreground))}.tree-course-row.assigned .tree-course-ic{color:hsl(var(--border))}.tree-course-row.flat-result{gap:8px}.tree-course-name{font-size:var(--text-body-size);font-weight:500;color:hsl(var(--foreground));line-height:var(--text-body-line)}.tree-course-ic{color:hsl(var(--muted-foreground));flex-shrink:0;align-self:flex-start;height:20px;display:flex;align-items:center}.tree-course-ic svg{width:15px;height:15px}.tree-course-row>.cc-add{order:2;flex-shrink:0;align-self:flex-start;margin-top:2px}.cc-add{width:16px;height:16px;border-radius:50%;border:1px solid hsl(var(--border));background:hsl(var(--card));color:hsl(var(--muted-foreground));display:flex;align-items:center;justify-content:center;font-size:10px;cursor:pointer;flex-shrink:0;padding:0;transition:background .12s, border-color .12s, color .12s}.cc-add:hover{border-color:hsl(var(--primary));color:hsl(var(--primary))}.cc-add.added{background:hsl(var(--primary));border-color:hsl(var(--primary));color:#fff}.cc-add.partial{background:hsl(var(--card));border-color:hsl(var(--primary));color:hsl(var(--primary))}.cc-add.cc-add-disabled,.cc-add.cc-add-disabled:hover{cursor:not-allowed;background:hsl(var(--card));border-color:hsl(var(--border));color:hsl(var(--border));position:relative}.cc-add-disabled::after{content:attr(data-tip);position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%);white-space:nowrap;background:#1c1917;color:#fff;font-size:var(--text-caption-size);font-weight:400;padding:4px 10px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .12s;z-index:60}.cc-add-disabled:hover::after{opacity:1}.tree-grp-add{margin-left:6px}.s2-acc{border:1px solid hsl(var(--border));border-radius:12px;margin-bottom:var(--space-4);overflow:hidden}.s2-acc:last-child{margin-bottom:0}.s2-acc-hdr{width:100%;display:flex;align-items:flex-start;justify-content:flex-start;gap:var(--space-2);padding:var(--space-4);background:transparent;border:none;cursor:pointer;font-family:inherit;text-align:left}.s2-acc.open .s2-acc-hdr{background:hsl(var(--primary) / .06)}.s2-acc-titlewrap{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.s2-acc-title{font-size:var(--text-h6-size);line-height:var(--text-h6-line);font-weight:600;color:hsl(var(--foreground))}.s2-acc-sub{font-size:var(--text-caption-size);line-height:var(--text-body-line);color:hsl(var(--muted-foreground));font-weight:400}.s2-acc-count{margin-left:auto;align-self:center;display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--semantic-warning-bg);color:var(--semantic-warning);font-size:var(--text-caption-size);font-weight:600;white-space:nowrap}.s2-acc-chev{font-size:var(--text-h5-size);color:hsl(var(--muted-foreground));transition:transform .2s ease;order:-1;margin-top:3px}.s2-acc.open .s2-acc-chev{transform:rotate(180deg)}.s2-acc-body{display:block;overflow:hidden;max-height:0;opacity:0;transition:max-height 0.36s cubic-bezier(0.4, 0, 0.2, 1),opacity 0.3s ease;padding:0 var(--space-4) 0 calc(var(--space-4) + var(--text-h5-size) + var(--space-2))}.s2-acc.open .s2-acc-body{max-height:none;opacity:1;padding-bottom:var(--space-4)}.s2-set-grid{display:grid;grid-template-columns:max-content max-content;border-top:1px solid hsl(var(--border) / .3)}.s2-set-grid>:nth-child(odd){padding-left:0}.s2-set-cell{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-5) var(--space-3);min-width:0}.s2-set-datecell{display:flex;align-items:flex-start;padding:var(--space-5) var(--space-3)}.s2-set-date-inner{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.s2-set-text{display:flex;flex-direction:column;gap:2px;flex:0 0 auto;min-width:0}.s2-set-lbl{font-size:var(--text-body-size);line-height:var(--text-body-line);color:hsl(var(--foreground))}.s2-lbl-row{display:inline-flex;align-items:center;gap:6px}.s2-info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:hsl(var(--border));cursor:help;font-size:var(--text-body-size)}.s2-info:hover{color:hsl(var(--primary))}.s2-info .s2-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:154px;background:#1c1917;color:#fff;font-size:var(--text-caption-size);line-height:var(--text-body-line);font-weight:400;padding:8px 10px;border-radius:8px;opacity:0;visibility:hidden;transition:opacity .14s ease;z-index:50;pointer-events:none}.s2-info:hover .s2-tip{opacity:1;visibility:visible}.s2-set-sublbl{font-size:var(--text-body-size);line-height:var(--text-body-line);color:hsl(var(--muted-foreground));flex-shrink:0}.s2-date-input{border:1px solid hsl(var(--input));border-radius:7px;height:30px;box-sizing:border-box;padding:0 10px;font-size:var(--text-caption-size);font-family:inherit;color:hsl(var(--foreground));outline:none;transition:border-color .15s;background:hsl(var(--card))}.s2-date-input:focus{border-color:hsl(var(--primary))}.s2-date-input:disabled{background:hsl(var(--muted));border-color:hsl(var(--border) / .5);color:hsl(var(--border));cursor:not-allowed;opacity:.7}.is-disabled .s2-set-sublbl{color:hsl(var(--border))}.s2-section-hdr{font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-line);font-weight:400;color:hsl(var(--muted-foreground))}.s2-notify-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.s2-checkbox-row{display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer}.s2-checkbox-row input[type="checkbox"]{width:15px;height:15px;accent-color:hsl(var(--primary));margin-top:2px;cursor:pointer;flex-shrink:0}.s2-check-label{font-size:var(--text-body-size);font-weight:500;color:hsl(var(--foreground))}.s2-check-role{font-size:var(--text-caption-size);color:hsl(var(--muted-foreground));margin-left:6px;background:hsl(var(--muted));border-radius:999px;padding:1px 8px}.s2-course-card{border-bottom:0.5px solid hsl(var(--border) / .3);padding:var(--space-2) 0}.s2-course-card:last-child{border-bottom:none}.s2-course-card.customised{background:var(--semantic-warning-bg);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0 calc(-1 * var(--space-3));border-bottom-color:transparent}.s2-course-row{display:flex;align-items:center;gap:var(--space-3)}.s2-course-ic{display:flex;align-items:center;color:hsl(var(--muted-foreground));font-size:var(--text-body-size);flex-shrink:0}.s2-course-name{font-size:var(--text-body-size);font-weight:500;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.s2-pc-lbl{font-size:var(--text-caption-size);color:hsl(var(--muted-foreground));flex-shrink:0}.s2-pc-lbl.is-disabled{color:hsl(var(--border))}.s2-pc-duelbl{margin-left:var(--space-8)}.seg-toggle.seg-sm{height:24px;padding:2px}.seg-sm .seg-opt{height:20px;padding:0 var(--space-3);font-size:var(--text-caption-size)}.s2-date-input-sm{height:24px;padding:0 7px;width:124px;flex-shrink:0}#acCommonSchedToggle .seg-opt,#acCommonTypeToggle .seg-opt,#alpCommonSchedToggle .seg-opt,#alpCommonTypeToggle .seg-opt{min-width:70px}.seg-sm.s2-pc-type .seg-opt{min-width:34px}.s3-total-bar{display:flex;align-items:center;justify-content:flex-end;padding:0 0 var(--space-3)}.s3-edit-link{font-size:var(--text-caption-size);color:hsl(var(--primary));background:none;border:none;cursor:pointer;font-family:inherit;font-weight:500;display:flex;align-items:center;gap:4px}.s3-section-hdr.s3-sec-toggle{cursor:pointer;display:flex;align-items:center;gap:var(--space-2);justify-content:flex-start;border:1px solid hsl(var(--border));border-radius:12px;padding:var(--space-4);font-size:var(--text-h6-size);line-height:var(--text-h6-line);font-weight:600;color:hsl(var(--foreground))}.s3-section-hdr.s3-sec-toggle:not(.collapsed){background:hsl(var(--primary) / .06);border-radius:12px 12px 0 0}.s3-sec-chev{font-size:var(--text-h5-size);color:hsl(var(--muted-foreground));flex-shrink:0}.s3-title-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--semantic-success-bg);color:var(--semantic-success);font-size:var(--text-caption-size);margin-left:6px}.s3-sec-pane{overflow:hidden;transition:max-height 0.36s cubic-bezier(0.4, 0, 0.2, 1);border:1px solid transparent;border-top:none;border-radius:0 0 12px 12px;margin-bottom:var(--space-4)}.s3-section-hdr.s3-sec-toggle:not(.collapsed)+.s3-sec-pane{border-color:hsl(var(--border));max-height:none;overflow:hidden}.s3-config-subtitle{display:flex;align-items:center;font-size:var(--text-body-lg-size);line-height:var(--text-body-lg-line);font-weight:400;color:hsl(var(--muted-foreground));padding:var(--space-4) var(--space-4) 4px}.s3-common-grid{padding:var(--space-4);display:flex;align-items:stretch}.s3-sum-item{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;padding:0 var(--space-4)}.s3-sum-item:first-child{padding-left:0}.s3-sum-item:not(:first-child){border-left:1px solid hsl(var(--border) / .3)}.s3-sum-k{font-size:var(--text-caption-size);color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.04em}.s3-sum-v{font-size:var(--text-body-size);color:hsl(var(--foreground))}.s3-cc-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4)}.s3-cc-ic{color:hsl(var(--muted-foreground));font-size:var(--text-body-size);display:flex;align-items:center}.s3-cc-name{font-size:var(--text-body-size);font-weight:500;color:hsl(var(--foreground))}.summary-course-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid hsl(var(--border) / .3)}.summary-course-row:last-child{border-bottom:none}.summary-course-row.customised{background:var(--semantic-warning-bg);border-bottom-color:transparent}.summary-course-icon{color:hsl(var(--muted-foreground));display:flex;align-items:center;flex-shrink:0}.summary-course-name{font-size:var(--text-body-size);font-weight:500;color:hsl(var(--foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.scs-val{display:inline-block;font-size:var(--text-caption-size);color:hsl(var(--foreground));font-weight:500;flex-shrink:0}.scs-val-yn{min-width:28px}.scs-val-date{min-width:92px}.info-note{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:hsl(var(--muted));color:hsl(var(--muted-foreground));font-size:var(--text-body-sm-size);line-height:var(--text-body-sm-line)}.info-note i{color:hsl(var(--primary));font-size:var(--text-body-lg-size);flex-shrink:0;margin-top:1px}.tag-chip{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-caption-size);background:hsl(var(--muted));color:hsl(var(--foreground));border-radius:var(--radius);padding:6px var(--space-3)}.tag-chip i{font-size:var(--text-body-sm-size);color:hsl(var(--muted-foreground));cursor:pointer;transition:color .12s}.tag-chip i:hover{color:var(--semantic-danger)}
