@charset "UTF-8";:root{--color-brand-primary: #2563EB;--color-brand-primary-hover: #1D4ED8;--color-brand-primary-pressed: #1E40AF;--color-brand-primary-subtle: #EFF6FF;--color-brand-dark: #1E3A8A;--color-brand-accent: #60A5FA;--color-brand-light: #DBEAFE;--color-brand-neutral: #E5E7EB;--color-background: #F5F7FB;--color-surface: #FFFFFF;--color-text: #111827;--color-text-muted: #64748B;--color-border: #E2E8F0;--color-success: #16A34A;--color-warning: #F59E0B;--color-danger: #DC2626;--color-focus-ring: var(--color-brand-primary);--color-surface-subtle: #f5f7fb;--color-border-subtle: #e2e8f0;--skeleton-base: #e7ebf1;--skeleton-highlight: #f7f9fc}*{box-sizing:border-box}app-root{display:block;min-height:100%}html.app-shell-active,html.app-shell-active body,html.app-shell-active app-root{height:100%;overflow:hidden}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--color-background);color:var(--color-text)}a{color:inherit}button,input,select,textarea{font:inherit}h1,h2,h3{margin:0}::selection{background:color-mix(in srgb,var(--color-brand-primary) 20%,transparent)}:focus-visible{outline:3px solid color-mix(in srgb,var(--color-focus-ring) 35%,transparent);outline-offset:2px}.modal{z-index:1500!important;padding:1rem;overflow:hidden;overscroll-behavior:contain}.modal>.modal-card{min-height:0;max-height:calc(100dvh - 2rem)!important;overflow:hidden!important}.modal>.modal-card>form,.modal>.modal-card>.import-body,.modal>.modal-card>app-student-editor{min-height:0}.modal>.modal-card>form,.modal>.modal-card>.import-body,.modal>.modal-card>app-student-editor,.modal>.modal-card .modal-body{overflow:auto;overscroll-behavior:contain}.modal>.modal-card>app-student-editor{display:block}.modal>form.modal-card{overflow:auto!important;overscroll-behavior:contain}.modal-card>header{position:sticky;top:0;z-index:2;background:#fff}.modal-card .actions{position:sticky;bottom:0;z-index:2;background:#fff;padding-top:.5rem}.sheet-backdrop,.drawer-backdrop{z-index:1500!important;max-width:100vw;max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.sheet-backdrop>.sheet,.drawer-backdrop>.drawer{max-width:100vw;max-height:100dvh;overflow:hidden}@media(max-height:560px){.modal{align-items:flex-start!important;padding-block:.5rem}.modal>.modal-card{max-height:calc(100dvh - 1rem)!important}}@media(max-width:850px){app-program-editor .editor-page{margin:-16px}app-program-editor .back{grid-column:1/-1;text-align:left}app-program-editor .editor-layout{grid-template-columns:1fr}app-program-editor .section-nav{position:sticky;top:7.8rem;z-index:10;flex-direction:row;overflow:auto;border-right:0}app-program-editor .section-nav button{white-space:nowrap;gap:.5rem}app-program-editor .editor-content{max-height:none}app-program-editor .detail{border-left:0;border-top:1px solid #e2e8f0;padding:1rem 0 0}app-program-editor .table-row{grid-template-columns:1.2fr 1fr 1fr}app-program-editor .table-row span:nth-child(4),app-program-editor .table-row span:nth-child(5){display:none}app-program-editor .mini-grid,app-program-editor .mapping-grid,app-program-editor .view-grid{grid-template-columns:1fr}app-program-editor .mini-head,app-program-editor .mapping-head{display:none}}app-program-editor .workspace-heading{margin-bottom:.15rem}app-program-editor .segmented{display:inline-flex;padding:3px;background:#f1f4f9;border-radius:9px;gap:3px}app-program-editor .segmented button{border:0;border-radius:7px;padding:.4rem .85rem;font-size:.78rem;font-weight:600;cursor:pointer;background:transparent;color:#667085}app-program-editor .segmented button.active{background:#fff;color:#101828;box-shadow:0 1px 2px #1018281f}app-program-editor .toggle-block{display:flex;flex-direction:column;gap:.4rem}app-program-editor .toggle-block>.label-title{font-size:.78rem;font-weight:600;color:#344054}app-program-editor .mode-help.subtle{margin:0;padding:0;background:transparent;color:#667085;font-size:.75rem}app-program-editor .switch-row{flex-direction:row!important;align-items:center;gap:.6rem!important;font-weight:500!important}app-program-editor .switch{position:relative;flex:none;width:44px;height:24px;display:inline-block}app-program-editor .switch input[type=checkbox]{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}app-program-editor .switch .knob{position:absolute;inset:0;border-radius:20px;background:#dfe4ec;transition:background .15s}app-program-editor .switch .knob:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #10182833;transition:transform .15s}app-program-editor .switch input[type=checkbox]:checked+.knob{background:var(--color-brand-primary)}app-program-editor .switch input[type=checkbox]:checked+.knob:before{transform:translate(20px)}.code-chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-height:1.7rem}app-program-editor .identity-field{display:flex;flex-direction:column;gap:.55rem;padding-bottom:.15rem}.code-chip-label{font-size:.68rem;font-weight:600;color:#667085;text-transform:uppercase;letter-spacing:.05em}.code-chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:#0f172a;background:#f7f9fc;border:1px solid #e4e9f0;border-radius:6px;padding:2px 8px}.color-input-row{display:flex;align-items:center;gap:6px}.color-swatch{width:30px;height:30px;padding:0;border:1px solid #e5e7eb;border-radius:7px;cursor:pointer;background:none}.color-hex-input{width:92px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;padding:6px 8px!important}.color-clear{border:none;background:transparent;color:#94a3b8;cursor:pointer;font-size:.85rem;padding:2px 4px}.color-clear:hover{color:#b91c1c}.code-edit-input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:.78rem!important;width:auto!important;min-width:12rem;padding:3px 8px!important}.code-edit-btn{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--color-brand-primary);font-size:.75rem;font-weight:500;cursor:pointer;padding:2px 0}.code-edit-btn:hover{color:var(--color-brand-primary-hover)}app-program-editor .code-hint{margin:-.3rem 0 0;color:#667085;font-size:.75rem}app-program-editor .icon-btn{width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:transparent;color:#667085;cursor:pointer}app-program-editor .icon-btn:hover{background:var(--color-brand-primary-subtle);color:var(--color-brand-primary)}app-program-editor .icon-btn.danger:hover{background:#fef2f2;color:#dc2626}app-program-editor .icon-btn:disabled{opacity:.45;cursor:not-allowed}app-program-editor .drag-handle{display:flex;align-items:center;justify-content:center;height:30px;color:#cbd5e1;cursor:grab;font-size:.8rem;letter-spacing:1px}app-program-editor .drag-handle:active{cursor:grabbing}app-program-editor .mini-grid.dragging{opacity:.4}app-program-editor .panel.general-panel{width:min(74rem,100%);padding:0;overflow:hidden}app-program-editor .general-grid{display:grid;grid-template-columns:minmax(0,1fr) 18rem;gap:0}app-program-editor .general-main{padding:28px 32px 32px;display:flex;flex-direction:column;gap:1.2rem;min-width:0;font-size:.95rem}app-program-editor .general-main .section-heading h2{font-size:1.3rem}app-program-editor .general-main .section-heading p{font-size:.9rem}app-program-editor .general-main>label{font-size:.85rem!important}app-program-editor .general-main input,app-program-editor .general-main textarea{padding:.8rem .9rem!important;font-size:.95rem!important}app-program-editor .general-main textarea{min-height:6.5rem}app-program-editor .general-toggles{display:flex;flex-wrap:wrap;gap:1.8rem 3rem;padding-top:.6rem;border-top:1px solid #eaeef5}app-program-editor .glance-card{width:18rem;flex:none;border-left:1px solid #e4e9f0;background:#fbfcfe;padding:20px 22px}app-program-editor .glance-card h3{margin:0 0 2px;font-size:.9rem;font-weight:650}app-program-editor .glance-card p{margin:0 0 8px;font-size:.78rem;color:#667085}app-program-editor .glance-card button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border:0;border-top:1px solid #f2f4f8;background:transparent;cursor:pointer;font-size:.82rem;color:#344054}app-program-editor .glance-card button:hover{color:var(--color-brand-primary)}app-program-editor .glance-value{display:inline-flex;align-items:center;gap:7px;font-weight:650;font-size:.9rem;color:#101828}app-program-editor .glance-arrow{color:#cbd5e1;font-weight:400}app-program-editor .field-name-cell{display:flex;flex-direction:column;gap:2px;min-width:0}app-program-editor .field-name-cell strong{font-size:.85rem;font-weight:650}app-program-editor .field-code-plain{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;color:#667085}app-program-editor .summary-section{display:flex;flex-direction:column;gap:.6rem}app-program-editor .summary-section h3{margin:0;font-size:.9rem;font-weight:650}app-program-editor .summary-card{background:#fbfcfe;border:1px solid #eaeef5;border-radius:10px;padding:.9rem 1.1rem;font-size:.85rem}app-program-editor .summary-card p{margin:.35rem 0}app-program-editor .summary-card-name{font-size:.95rem;font-weight:650;margin-bottom:.55rem}app-program-editor .summary-card-grid{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:.4rem 1rem;font-size:.85rem;color:#344054;line-height:1.5}app-program-editor .summary-card-key{color:#667085}@media(max-width:600px){app-program-editor .summary-card-grid{grid-template-columns:1fr;gap:.15rem}}app-program-editor .checklist-item{display:flex;gap:.7rem;align-items:center;border:1px solid #fbe3d5;background:#fff8f4;border-radius:9px;padding:.7rem .85rem;text-align:left;cursor:pointer;font-size:.82rem}app-program-editor .checklist-item.ready{border-color:#d9f0e1;background:#f4fbf6}app-program-editor .checklist-item span:first-child{width:20px;height:20px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:.7rem;font-weight:700;color:#fff;background:#ea8c25}app-program-editor .checklist-item.ready span:first-child{background:#16a34a}app-program-editor .checklist-item .jump{margin-left:auto;color:var(--color-brand-primary);font-weight:600}app-program-editor .server-diagnostics{display:flex;flex-direction:column;gap:.5rem}app-program-editor .diagnostic{border:0;background:#fff7ed;color:#9a3412;padding:.6rem .7rem;text-align:left;border-radius:8px;cursor:pointer;font-size:.8rem}@media(max-width:900px){app-program-editor .general-grid{grid-template-columns:1fr}app-program-editor .glance-card{width:auto;border-left:0;border-top:1px solid #e4e9f0}}app-program-editor .workspace-list-detail{display:grid;grid-template-columns:16rem minmax(0,1fr);gap:1rem;align-items:start}app-program-editor .list-pane{position:sticky;top:0;display:grid;grid-template-rows:auto minmax(0,1fr);height:calc(100dvh - 12rem);min-height:22rem;max-height:38rem;overflow:hidden;border:1px solid #e4e9f0;border-radius:.75rem;background:#fbfcfe}app-program-editor .list-pane-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.7rem;border-bottom:1px solid #e4e9f0;background:#fff}app-program-editor .list-pane-header>div{display:flex;align-items:center;gap:.4rem}app-program-editor .count{display:inline-grid;min-width:1.5rem;height:1.5rem;place-items:center;border-radius:999px;background:#f1f4f9;color:#667085;font-size:.75rem;font-weight:700}app-program-editor .compact-add{padding:.45rem .55rem;white-space:nowrap;font-size:.78rem}app-program-editor .item-list-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.55rem;scrollbar-gutter:stable}app-program-editor .item-card{display:block;width:100%;margin-bottom:.45rem;padding:.75rem;border:1px solid #e4e9f0;border-radius:.65rem;background:#fff;color:#101828;text-align:left;cursor:pointer}app-program-editor .item-card:hover{border-color:var(--color-brand-primary);background:#f4f7ff}app-program-editor .item-card:focus-visible{outline:3px solid var(--color-brand-accent);outline-offset:1px}app-program-editor .item-card.selected{border-color:var(--color-brand-primary);background:#f4f7ff;box-shadow:inset 3px 0 var(--color-brand-primary)}app-program-editor .item-card-title,app-program-editor .item-card small{display:flex;align-items:center;justify-content:space-between;gap:.5rem}app-program-editor .item-card-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}app-program-editor .item-card small{margin-top:.45rem;color:#667085;font-size:.75rem}app-program-editor .status-pill{flex:none;padding:.12rem .45rem;border-radius:999px;background:#f1f4f9;color:#667085;font-size:.68rem;font-weight:700}app-program-editor .detail{min-width:0;padding-left:1rem;border-left:1px solid #eaeef5}app-program-editor .sectioned-detail,app-program-editor .view-settings{display:flex;flex-direction:column;gap:1rem}app-program-editor .detail-section{min-width:0;padding:1rem;border:1px solid #e4e9f0;border-radius:.75rem;background:#fff;box-shadow:0 1px 2px #1018280a}app-program-editor .form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(11rem,.55fr);gap:.8rem;margin-top:.9rem}app-program-editor .form-grid .full-row{grid-column:1/-1}app-program-editor .detail-section>.advanced,app-program-editor .effect-editor>.advanced{margin-top:.9rem}app-program-editor .mini-grid{display:grid;grid-template-columns:28px minmax(0,1fr) 7rem 2.4rem;gap:.6rem;align-items:center;margin-top:.55rem}app-program-editor .mini-head,app-program-editor .mapping-head,app-program-editor .view-head,app-program-editor .button-head{color:#667085;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}app-program-editor .mapping-grid,app-program-editor .mapping-head{grid-template-columns:minmax(0,1.3fr) 20px minmax(0,1.3fr) minmax(8rem,1.15fr) 2.4rem}app-program-editor .mapping-arrow{text-align:center;color:#cbd5e1}app-program-editor .view-grid,app-program-editor .view-head{grid-template-columns:28px minmax(7rem,.8fr) minmax(9rem,1.15fr) minmax(9rem,1fr) 28px 2.4rem 2.4rem}app-program-editor .view-display-toggle{align-self:start;width:28px;height:28px;border:1px solid #e4e9f0;background:#fff;color:#667085;border-radius:7px;cursor:pointer;font-size:.8rem}app-program-editor .view-display-toggle.expanded{color:var(--color-brand-primary);border-color:var(--color-brand-light);background:var(--color-brand-primary-subtle)}app-program-editor .view-display-panel{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.6rem .9rem;padding:.7rem .8rem;margin-top:-.1rem;background:#f7f9fc;border:1px solid #e4e9f0;border-radius:10px}app-program-editor .view-display-panel label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:#334155}app-program-editor .view-display-panel small{color:#94a3b8;font-size:.7rem}app-program-editor .button-grid,app-program-editor .button-head{grid-template-columns:28px minmax(0,1fr) 2.4rem}app-program-editor .compact-check{justify-content:center}app-program-editor .inline-empty{margin:.55rem 0 0;padding:.45rem 0}app-program-editor .effect-list{display:flex;flex-direction:column;gap:.65rem;margin-top:.85rem}app-program-editor .effect-card{overflow:hidden;border:1px solid #e4e9f0;border-radius:.7rem;background:#fff}app-program-editor .effect-card.expanded{border-color:var(--color-brand-primary);box-shadow:0 1px 3px #10182812}app-program-editor .effect-summary-row{display:flex;align-items:center;gap:.5rem;padding-right:.6rem;background:#fff}app-program-editor .effect-summary{display:flex;flex:1;min-width:0;align-items:center;gap:.75rem;padding:.8rem .9rem;border:0;background:transparent;color:#101828;text-align:left;font-weight:650;cursor:pointer}app-program-editor .effect-summary-text{flex:1;min-width:0}app-program-editor .effect-toggle-btn{flex:none;padding:.35rem .75rem!important;font-size:.75rem!important;white-space:nowrap}app-program-editor .effect-dot{flex:none;width:9px;height:9px;border-radius:3px;background:var(--color-brand-primary)}app-program-editor .effect-dot.unmapped{background:#f59e0b}app-program-editor .effect-card.expanded .effect-summary-row{background:#fff}app-program-editor .effect-card.expanded .effect-summary{color:var(--color-brand-primary)}app-program-editor .effect-editor{display:flex;flex-direction:column;gap:.8rem;padding:1rem;border-top:1px solid #e4e9f0;background:#fbfcfe}app-program-editor .mapping-title{align-items:center;margin-top:.25rem}app-program-editor .view-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(14rem,.45fr);gap:1rem;align-items:start}app-program-editor .preview-pane{position:sticky;top:0}app-program-editor .preview{margin-top:.85rem;padding:1rem;border:1px solid #e4e9f0;border-radius:.7rem;background:#fbfcfe}app-program-editor .preview h3{margin:0 0 .5rem}app-program-editor .preview-field{display:flex;justify-content:space-between;gap:.5rem;padding:.55rem 0;border-bottom:1px solid #e2e8f0}app-program-editor .preview button{margin:.8rem .5rem 0 0}app-program-editor .preview-empty{color:#64748b;font-size:.85rem}@media(max-width:1100px){app-program-editor .workspace-list-detail{grid-template-columns:1fr}app-program-editor .list-pane{position:static;height:auto;min-height:0;max-height:none}app-program-editor .item-list-scroll{max-height:16rem}app-program-editor .detail{padding:1rem 0 0;border-top:1px solid #e2e8f0;border-left:0}app-program-editor .view-editor-grid{grid-template-columns:1fr}app-program-editor .preview-pane{position:static}}@media(max-width:850px){app-program-editor .workspace-panel{padding:1rem}app-program-editor .mini-grid,app-program-editor .mapping-grid,app-program-editor .view-grid,app-program-editor .button-grid{grid-template-columns:1fr;padding:.75rem 0;border-top:1px solid #e2e8f0}app-program-editor .mini-head,app-program-editor .mapping-head,app-program-editor .view-head,app-program-editor .button-head{display:none}app-program-editor .compact-check{justify-content:flex-start}app-program-editor .drag-handle,app-program-editor .mapping-arrow{display:none}}@media(max-width:600px){app-program-editor .form-grid{grid-template-columns:1fr}app-program-editor .form-grid .full-row{grid-column:auto}app-program-editor .section-heading,app-program-editor .detail-title{flex-wrap:wrap}}app-program-editor .item-card-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:stretch;margin-bottom:.45rem;overflow:hidden;border:1px solid #e4e9f0;border-radius:.65rem;background:#fff}app-program-editor .item-card-row .item-card{margin:0;border:0;border-radius:0}app-program-editor .item-card-row:hover{border-color:var(--color-brand-primary)}app-program-editor .item-card-row.selected{border-color:var(--color-brand-primary);background:#f4f7ff;box-shadow:inset 3px 0 var(--color-brand-primary)}app-program-editor .item-card-row.selected .item-card{background:#f4f7ff}app-program-editor .item-delete,app-program-editor .item-duplicate{width:2.35rem;flex:none;display:flex;align-items:center;justify-content:center;align-self:stretch;border:0;border-left:1px solid #e4e9f0;background:transparent;color:#667085;cursor:pointer}app-program-editor .item-delete:hover{background:#fef2f2;color:#dc2626}app-program-editor .item-duplicate:hover{background:var(--color-brand-primary-subtle);color:var(--color-brand-primary)}app-program-editor .item-delete:focus-visible{outline:3px solid #fca5a5;outline-offset:-3px}app-program-editor .item-duplicate:focus-visible{outline:3px solid var(--color-brand-accent);outline-offset:-3px}app-program-editor .item-delete:disabled,app-program-editor .item-duplicate:disabled{opacity:.45;cursor:not-allowed}app-program-editor .panel .color-input-row{min-width:0;height:40px}app-program-editor .panel input.color-swatch{flex:0 0 40px;width:40px;height:40px;min-height:40px;padding:3px!important;border-color:#dbe2ea;border-radius:9px;cursor:pointer}app-program-editor .panel input.color-hex-input{flex:1 1 0;width:0!important;height:40px;min-height:40px}app-program-editor .panel input.color-swatch::-webkit-color-swatch-wrapper{padding:0}app-program-editor .panel input.color-swatch::-webkit-color-swatch{border:0;border-radius:5px}app-program-editor .panel input.color-swatch::-moz-color-swatch{border:0;border-radius:5px}app-program-editor .floating-save-bar{position:fixed;left:50%;right:auto;bottom:22px;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:14px;padding:9px 12px 9px 18px;background:#fff;border:1px solid #e4e9f0;border-radius:14px;box-shadow:0 10px 30px #10182829}app-program-editor .floating-dirty{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;font-weight:600;color:#344054;white-space:nowrap}app-program-editor .floating-dirty .dot{width:7px;height:7px;border-radius:50%;background:#f59e0b}@media(max-width:850px){app-program-editor .floating-save-bar{left:12px;right:12px;transform:none;bottom:12px}}@media(max-width:850px){app-program-editor .editor-layout{display:block;min-height:0}app-program-editor .section-nav{position:sticky;top:var(--shell-header-height, 107px);z-index:20;display:grid;grid-template-columns:minmax(0,1fr) auto;height:auto;padding:.65rem;overflow:visible;border-right:0;border-bottom:1px solid #dfe5ef;box-shadow:0 2px 10px #0f172a0a}app-program-editor .sidebar-header{min-width:0;padding:0;border:0}app-program-editor .sidebar-header .identity h1{font-size:1rem}app-program-editor .sidebar-header .meta{display:none}app-program-editor .sidebar-save{grid-column:2;grid-row:1;align-self:end;margin:0;padding:0;border:0}app-program-editor .section-links{grid-column:1/-1;flex-direction:row;overflow-x:auto;overflow-y:hidden}app-program-editor .section-links button{flex:0 0 auto}}@keyframes ai-help-highlight-pulse{0%,to{box-shadow:0 0 0 3px #4f46e540}50%{box-shadow:0 0 0 7px #4f46e51f}}.ai-help-highlight{position:relative;z-index:1;outline:2px solid #4f46e5!important;animation:ai-help-highlight-pulse 1s ease-in-out 5}
