:root{color-scheme:light;font-family:Arial,Helvetica,sans-serif;color:#292b36;background:#fff;--purple: #5b2d90;--blue: #2567a2;--green: #2d8050;--red: #b8404a;--orange: #ef7d00;--muted: #535662;--purple-soft: #f5edff;--purple-hover: #4a2378;--blue-hover: #1d5486;--orange-hover: #c96800;--red-hover: #96343d;--divider: #d8d3dc;--surface-soft: #f7f4f8}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}.short-link-page{display:grid;width:100%;height:100%;place-content:center;color:var(--purple);text-align:center}.trainer-access-gate{position:fixed;z-index:40;inset:0;display:grid;padding:40px 20px;place-items:center;background:linear-gradient(135deg,#6a11cb,#f60)}.trainer-access-gate>section{display:flex;width:500px;max-width:calc(100vw - 40px);max-height:calc(100vh - 80px);padding:40px 30px;flex-direction:column;gap:20px;overflow-y:auto;border-radius:16px;color:#333;background:#fff;box-shadow:0 0 30px #0000004d}.trainer-access-gate .brand{padding:0;text-align:center}.trainer-access-gate .brand-logo{height:80px;margin-bottom:20px}.trainer-access-gate .brand strong{font-size:1.8rem;line-height:1.25}.trainer-access-gate .brand span{font-size:1rem;letter-spacing:0}.trainer-access-gate>section>p{margin:0;padding:16px 18px;border-left:5px solid #ff6600;border-radius:8px;background:#fff7f1;line-height:1.5}.trainer-access-gate .login-form button{width:100%;margin-top:10px;padding:14px 32px;border-color:#f60;background:#f60;font-size:1.1rem}.trainer-access-gate .login-form button:hover:not(:disabled){border-color:#e05500;background:#e05500}.trainer-access-gate .login-form input:focus-visible{border-color:#f60;outline:3px solid rgb(255 102 0 / 18%);outline-offset:0}button,input{font:inherit}button{min-height:36px;padding:7px 10px;border:2px solid var(--purple);border-radius:999px;color:#fff;background:var(--purple);cursor:pointer;font-size:.78rem;font-weight:800;line-height:1.25}button:hover:not(:disabled){border-color:var(--purple-hover);background:var(--purple-hover)}button:focus-visible,input:focus-visible{outline:3px solid #4b0f86;outline-offset:3px}button:disabled{border-color:#b6b2bb!important;color:var(--muted)!important;background:var(--divider)!important;cursor:not-allowed}.shell{display:grid;width:100%;height:100%;grid-template-columns:minmax(0,1fr) 360px}.shell[data-collapsed=true]{grid-template-columns:minmax(0,1fr) 52px}.editor-pane{position:relative;min-width:0;min-height:0;overflow:hidden;background:#fff}.editor-pane iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0;transform-origin:top left}.editor-frame-active{z-index:1;visibility:visible}.editor-frame-staging{z-index:0;visibility:hidden;pointer-events:none}.editor-transition{position:absolute;z-index:2;right:18px;bottom:18px;padding:9px 13px;border:1px solid #d8d3dc;border-radius:999px;color:var(--purple);background:#fffffff0;box-shadow:0 4px 18px #292b362e;font-size:.82rem;font-weight:800}.editor-pane[data-editor-transition=loading] .editor-frame-active{pointer-events:none}.side-panel{position:relative;display:flex;min-width:0;flex-direction:column;overflow-y:auto;border-left:1px solid var(--divider);color:var(--muted);background:var(--surface-soft);box-shadow:-8px 0 24px #292b361f}.panel-content{display:flex;min-width:0;padding:18px;flex-direction:column;gap:12px}.panel-content>*{flex-shrink:0}.panel-toggle{position:sticky;z-index:5;top:8px;width:44px;min-height:44px;flex:0 0 44px;align-self:flex-start;margin:4px 4px -48px auto;padding:0;border:2px solid #8154a2;border-radius:999px;color:#4b0f86;background:#fff}.panel-toggle:hover:not(:disabled){background:var(--purple-soft)}.panel-toggle span{display:inline-block;font-size:1.45rem;line-height:1}.shell[data-collapsed=true] .panel-toggle{display:block;margin:4px auto}.shell[data-collapsed=true] .panel-toggle span{transform:rotate(180deg)}.shell[data-collapsed=true] .panel-content{display:none}.brand{padding:4px 28px 2px;text-align:center}.brand-logo{display:block;width:min(154px,100%);height:62px;margin:0 auto 9px;object-fit:contain}.brand-logo-en{width:min(136px,100%)}.brand strong{display:block;margin-bottom:6px;color:#6a238f;font-size:.82rem;font-weight:800;letter-spacing:.12em;line-height:normal}.brand span{display:block;color:var(--purple);font-size:.82rem;font-weight:800;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}.panel-account-label{margin:0;color:var(--muted);font-size:.82rem;font-weight:700}.card{min-width:0;padding:12px;border:1px solid #d8d3dc;border-radius:14px;background:#fff}.card h2{margin:0 0 10px;color:var(--muted);font-size:1rem;line-height:1.3}.card p{margin:5px 0 10px;font-size:13px;line-height:1.4}.status{padding:8px 10px;border-left:4px solid var(--green);border-radius:6px;background:#edf8f1}.status.warning,.notice{border-color:var(--orange);background:#fff5e9}.notice button+button{margin-left:7px}.share-update{border-color:#b76b15;color:#754009;background:#fff5e9}.trainer-update{border-color:#b76b15;border-radius:10px;color:#754009;background:#fff3dd}.trainer-update button{width:100%}.share-update p{margin:0 0 10px;font-size:.82rem;line-height:1.4}.share-update button+button{display:block;margin-top:8px}.status-grid{display:grid;margin:0;gap:8px}.status-grid>div{display:grid;min-width:0;padding:10px 12px;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:10px;border:1px solid #d8d3dc;border-radius:10px;background:#fff}.shell[data-panel-kind=student] .status-grid>div{grid-template-columns:76px minmax(0,1fr)}.status-grid dt{color:var(--muted);font-size:.82rem;font-weight:700}.status-grid dd{display:inline-flex;min-width:0;margin:0;padding:5px 8px;align-items:center;justify-self:start;gap:6px;border:1px solid currentcolor;border-radius:999px;color:#4b0f86;background:var(--purple-soft);font-size:.78rem;font-weight:800;overflow-wrap:anywhere}.shell[data-panel-kind=student] .status-grid dd{font-size:.82rem}.status-grid dd:before{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:currentcolor;content:""}.status-grid dd[data-state=loading]{color:#7a3e00;background:#fff3dd}.status-grid dd[data-state=ready]{color:#176a2d;background:#e7f6eb}.status-grid dd[data-state=error]{color:var(--red);background:#fff0ef}.ai-card{border-color:#cbb8df;background:var(--purple-soft)}.ai-card h2{font-size:.9rem}.ai-card p{margin:0;line-height:1.55;white-space:pre-wrap}.name-field{display:grid;min-width:0;margin:0 0 12px;gap:6px;color:var(--muted);font-size:.78rem;font-weight:700;line-height:1.4}input{width:100%;min-height:36px;padding:7px 8px;border:1px solid #6f717c;border-radius:10px;color:#292b36;background:#fff;font-weight:400}input:disabled{border-color:#b6b2bb;color:var(--muted);background:var(--surface-soft);cursor:not-allowed}.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.project-new-button{border-color:var(--purple);background:var(--purple)}.project-new-button:hover:not(:disabled){border-color:var(--purple-hover);background:var(--purple-hover)}.project-save-button{border-color:var(--blue);background:var(--blue)}.project-save-button:hover:not(:disabled){border-color:var(--blue-hover);background:var(--blue-hover)}.project-download-button{border:2px solid var(--green);color:var(--green);background:#fff}.project-download-button:hover:not(:disabled){border-color:var(--green);color:var(--green);background:#edf8f1}.project-import-button{border:2px solid var(--orange);color:var(--orange);background:#fff}.project-import-button:hover:not(:disabled){border-color:var(--orange);color:var(--orange);background:#fff3e5}.trainer-actions .project-download-button,.trainer-actions .project-import-button{border-color:#8154a2;color:#4b0f86;background:#fff}.trainer-actions .project-download-button:hover:not(:disabled),.trainer-actions .project-import-button:hover:not(:disabled){border-color:#8154a2;color:#4b0f86;background:var(--purple-soft)}.trainer-update-load-button{border-color:#a83d00;background:#a83d00}.trainer-update-load-button:hover:not(:disabled){border-color:#812f00;background:#812f00}.project-conflict-load-button{border-color:var(--red);background:var(--red)}.project-conflict-load-button:hover:not(:disabled){border-color:var(--red-hover);background:var(--red-hover)}.project-conflict-copy-button{border-color:var(--red);color:var(--red);background:#fff}.project-conflict-copy-button:hover:not(:disabled){border-color:var(--red-hover);color:#fff;background:var(--red-hover)}.wide{background:var(--green)}.secondary{background:var(--orange)}.share-project-button{border-color:var(--orange);background:var(--orange)}.share-project-button:hover:not(:disabled){border-color:var(--orange-hover);background:var(--orange-hover)}.project-copy-link-button{border:2px solid var(--orange);color:var(--orange);background:#fff}.project-copy-link-button:hover:not(:disabled){border-color:var(--orange);color:var(--orange);background:#fff3e5}.trainer-push-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.force-push-button{border:2px solid var(--red);color:var(--red);background:#fff}.force-push-button:hover:not(:disabled){border-color:var(--red);color:#fff;background:var(--red)}.wide{width:100%;margin-top:8px}.danger{border-color:#8e1b16;color:#8e1b16;background:#fff}.danger:hover:not(:disabled){border-color:#8e1b16;color:#fff;background:#8e1b16}.secondary-button,.projects-button,.trainer-push-card .force-push-button{border-color:#8154a2;color:#4b0f86;background:#fff}.secondary-button:hover:not(:disabled),.projects-button:hover:not(:disabled){border-color:#8154a2;color:#4b0f86;background:var(--purple-soft)}.trainer-push-card .force-push-button{border-color:#8e1b16;color:#8e1b16}.trainer-push-card .force-push-button:hover:not(:disabled){border-color:#8e1b16;color:#fff;background:#8e1b16}.collaboration{display:grid;margin-top:10px;padding-top:10px;gap:10px;border-top:1px solid #d8d3dc}.collaboration>div{display:grid;gap:10px}.collaboration .share-link-field{margin-bottom:0}.collaboration .share-link-field input{min-width:0;font-size:.7rem}.login-form{display:grid;gap:8px}.login-form label{display:grid;gap:5px;font-size:12px;font-weight:700}.error{color:#8e1b16;font-weight:700}.modal-backdrop{position:fixed;z-index:20;inset:0;display:grid;padding:30px;place-items:center;background:#140c1b9e}.projects-dialog{width:min(920px,100%);max-height:90vh;padding:22px;overflow:auto;border-radius:16px;background:#f7f4f8}.projects-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.projects-heading-actions{display:flex;align-items:center;gap:8px}.projects-dialog h1,.projects-dialog p{margin:0 0 6px}.projects-dialog .project-limit-message{max-width:680px;margin-top:12px;padding:12px 16px;border:1px solid var(--red);border-radius:10px;color:var(--red);background:#fff0ef;font-weight:700}.project-selection-actions{display:flex;margin-top:12px;justify-content:flex-end;gap:8px}.project-grid{display:grid;margin-top:18px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}.project-grid article{position:relative;display:grid;padding:10px;gap:8px;border:2px solid transparent;border-radius:14px;background:#fff}.project-grid article:hover{border-color:var(--purple);box-shadow:0 4px 14px #0000001a}.project-grid article.active{border-color:var(--orange)}.project-grid article.selected{border-color:var(--purple);box-shadow:0 0 0 2px #5b2d9024}.project-selection-checkbox{position:absolute;z-index:1;top:18px;right:18px;width:20px;min-height:20px;margin:0;accent-color:var(--purple)}.open-project{display:grid;min-height:100px;padding:0;align-content:center;gap:8px;border:0;border-radius:0;color:#292b36;background:#fff;text-align:left}.open-project:hover:not(:disabled){color:#292b36;background:#fff}.open-project small{color:#665f6c}.project-thumbnail{display:grid;overflow:hidden;aspect-ratio:4 / 3;place-items:center;border-radius:8px;color:#4b0f86;background:#f1eafa}.project-thumbnail img{width:100%;height:100%;object-fit:cover}.project-open-label{color:var(--purple);font-weight:700}@media(forced-colors:active){.status-grid dd:before{border:1px solid currentColor}.side-panel,.card,.project-grid article,.status-grid>div{forced-color-adjust:auto}}@media(max-width:1379px){.shell{grid-template-columns:minmax(0,1fr) 52px}.shell:not([data-collapsed=true]){grid-template-columns:minmax(0,1fr) 0}.shell:not([data-collapsed=true]) .side-panel{position:fixed;z-index:10;top:0;right:0;bottom:0;width:min(360px,calc(100vw - 52px))}}
