/* 5.2: one sidebar layout model; no duplicate grid offset. */
.campus-body{overflow-x:hidden}.app-shell{display:block!important;grid-template-columns:none!important}.app-main{display:block;min-width:0;margin-left:240px;transition:margin-left .32s cubic-bezier(.22,.68,0,1)}
.sidebar,.sidebar-collapsed .sidebar{display:flex;transform:translateX(0);visibility:visible;transition:transform .32s cubic-bezier(.22,.68,0,1),visibility 0s;will-change:transform;width:240px;max-width:88vw;overflow-x:hidden;box-sizing:border-box}
.sidebar-collapsed .sidebar{transform:translateX(-102%);visibility:hidden;pointer-events:none;transition:transform .32s cubic-bezier(.22,.68,0,1),visibility 0s .32s}.sidebar-collapsed .app-main{margin-left:0}
.sidebar nav,.sidebar-bottom,.side-link{min-width:0}.side-link{width:100%;text-align:left}.side-link>span{flex:1;min-width:0;overflow-wrap:anywhere}.side-link>.icon{flex:0 0 22px}.sidebar-guide{position:static;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;padding:12px 8px;gap:8px;flex-shrink:0;text-align:left}.sidebar-guide>.character-image{position:static;transform:none;width:44px;height:58px;object-fit:contain;margin:0}.sidebar-guide>div{min-width:0}.sidebar-guide b,.sidebar-guide p{display:block;white-space:normal;overflow-wrap:normal;margin:0;font-size:11px;line-height:1.5}.sidebar-guide p{margin-top:4px}.sidebar-bottom{margin-top:auto;flex-shrink:0}.sidebar-bottom button{display:flex;gap:8px;align-items:center;text-align:left;white-space:normal;width:100%;line-height:1.45}.sidebar-bottom .icon{flex:0 0 18px}
.app-topbar{flex-wrap:wrap;gap:12px}.app-topbar>div{min-width:0}.topbar-profile{flex-wrap:wrap;justify-content:flex-end}.profile-name{max-width:190px;overflow-wrap:anywhere}
.editor-page .app-content{width:100%;max-width:none!important;padding:14px 12px 90px;box-sizing:border-box}.editor-page .studio-brief{margin:0 0 12px}.studio-toolbar{display:flex;flex-wrap:wrap;min-width:0;gap:10px}.studio-toolbar>input{flex:1 1 220px;min-width:140px}.studio-toolbar>div{display:flex;flex-wrap:wrap;gap:8px}.lesson-explanation{max-width:850px}.lesson-explanation p{font-size:14px;line-height:1.7;white-space:pre-line}.lesson-explanation h3{font-size:15px;margin:16px 0 7px}.concept-example pre{font:13px/1.7 'Fira Code',monospace;overflow:auto;background:#F8FAFC;border:1px solid #D9E3EE;padding:16px;border-radius:10px}.challenge-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.studio-brief small{display:block}.editor-page .game-editor-wrap{width:100%;height:max(680px,78dvh);min-height:680px}.game-editor-wrap iframe{display:block;width:100%;min-width:0;height:100%;border:0}.editor-page .game-editor-wrap.expanded{height:auto;min-height:0;inset:8px}.game-editor-wrap.expanded iframe{flex:1;height:0;min-height:0}
.python-workspace{min-width:0}.python-view-tools>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.python-theme-toggle{display:inline-flex}.python-room{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);min-height:650px}.python-source{min-width:0;display:flex;flex-direction:column}.python-code-area{position:relative;flex:1;min-height:550px;height:65dvh}.python-code-area>#python-code,.python-code-area>#monaco-python{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:0;resize:none;box-sizing:border-box}.python-code-area>#python-code{padding:20px;white-space:pre;overflow:auto}.python-code-area>[hidden],#turtle-panel[hidden]{display:none!important}.python-controls{display:flex;margin-top:auto}.python-console{min-width:0;display:flex;flex-direction:column;overflow:hidden}.python-console>#python-output{height:auto;min-height:170px;max-height:45dvh;flex:1;overflow:auto;margin:0;white-space:pre-wrap}.python-console label,.python-console>#python-input{margin:10px 15px}.python-console>#python-input{min-height:70px;resize:vertical;width:calc(100% - 30px)}.python-source header,.python-console header{gap:10px;height:auto;min-height:48px;flex-wrap:wrap;flex-shrink:0}
.turtle-canvas-stack{position:relative;width:100%;aspect-ratio:10/7;background:white;isolation:isolate;overflow:hidden}.turtle-canvas-stack canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.turtle-canvas-stack #turtle-cursors{pointer-events:none;background:transparent}.python-workspace.expanded{position:fixed;z-index:10000;inset:8px;display:flex;flex-direction:column;background:#F8FAFC;border:2px solid #334155;border-radius:14px;overflow:auto;box-shadow:0 0 0 20px #0B1121CC}.python-workspace.expanded>.editor-wide-toolbar{display:flex;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 18px;background:#0B1121;color:white;min-height:66px;gap:12px}.python-workspace.expanded>.python-view-tools{padding:8px 14px;margin:0;flex-shrink:0}.python-workspace.expanded .python-room{flex:1;min-height:0;border-radius:0}.python-workspace.expanded .python-code-area{height:100%;min-height:280px}.python-workspace.expanded .python-source{min-height:0}.admin-bar .python-workspace.expanded{top:40px}.python-workspace.expanded .turtle-canvas-stack{max-height:55dvh}.python-room[data-theme="dark"] .python-code-area{background:#1E1E1E}.admin-ops [data-mail-form] label{display:block;margin:12px 0}.admin-ops [data-mail-form] .checkbox-label{display:flex}.admin-ops [data-mail-form] input:not([type=checkbox]),.admin-ops [data-mail-form] select{width:100%}.mail-status{font-size:13px;line-height:1.6}.reflection-feedback{color:#A31660;font-weight:600}
@media(max-width:900px){.app-main,.sidebar-collapsed .app-main{margin-left:0}.sidebar,.sidebar-collapsed .sidebar{display:flex;transform:translateX(-102%);visibility:hidden;pointer-events:none;transition:transform .32s cubic-bezier(.22,.68,0,1),visibility 0s .32s}.sidebar.mobile-open,.sidebar-collapsed .sidebar.mobile-open{display:flex;transform:translateX(0);visibility:visible;pointer-events:auto;transition:transform .32s cubic-bezier(.22,.68,0,1),visibility 0s}.python-room{grid-template-columns:minmax(0,1fr)}.python-workspace.expanded .python-room{overflow:auto;display:block}.python-code-area{height:65dvh;min-height:400px}.python-workspace.expanded .python-code-area{height:60dvh}.python-console>#python-output{min-height:170px;max-height:300px}.turtle-canvas-stack{max-height:none}.editor-page .app-content{padding-inline:8px}.app-topbar .breadcrumb{display:none}}
@media(max-width:600px){.studio-toolbar{gap:8px}.studio-toolbar>input{width:100%;flex-basis:100%;min-width:0}.studio-toolbar>div{width:100%}.studio-toolbar .button{padding:9px 11px}.python-view-tools{flex-direction:column;align-items:flex-start}.python-view-tools>div{width:100%}.python-room{min-height:600px}.python-code-area{min-height:400px}.python-workspace.expanded>.editor-wide-toolbar b{display:none}.python-workspace.expanded .editor-return{width:100%}.profile-name{display:none}.topbar-profile{gap:6px}.app-topbar{flex-wrap:nowrap;padding-inline:12px}.editor-page .game-editor-wrap{min-height:600px;height:80dvh}}
@media(prefers-reduced-motion:reduce){.sidebar,.sidebar-collapsed .sidebar,.app-main{transition:none!important}}
/* 5.3: compact input guide, visible checks and reversible editor modes. */
.python-view-tools{gap:12px;flex-wrap:wrap}.python-view-tools>span{flex:0 0 auto}.python-view-tools [data-studio="complete"]{white-space:normal}.python-view-tools [aria-pressed="true"].text-button{background:#EDE9FE;color:#6B21A8;border-radius:7px;box-shadow:inset 0 -2px #8A2BE2}
.python-input-panel{padding:14px 16px;border-top:1px solid #CBD5E1;background:#F8FAFC;color:#1E293B;flex-shrink:0}.input-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.python-console .input-panel-heading label{margin:0;font-size:14px;font-weight:700}.input-panel-heading>span{font:12px 'Fira Code',monospace;color:#6B21A8}.python-input-panel p{font-size:12px;line-height:1.6;margin:8px 0;color:inherit}.python-input-panel #python-input{display:block;width:100%;max-height:180px;min-height:74px;margin:10px 0 8px;box-sizing:border-box;border:1px solid #94A3B8;border-radius:8px;padding:10px 12px;resize:vertical;background:#FFF;color:#1E293B;font:13px/1.65 'Fira Code',monospace}.input-order{font-size:11px;line-height:1.6;overflow-wrap:anywhere;max-height:70px;overflow:auto;color:#475569}.input-guide{margin-top:10px}.input-guide summary{cursor:pointer;font-size:12px;font-weight:600}.input-guide small{display:block;font-size:11px;line-height:1.6;margin-top:8px}.input-guide .text-button,.input-panel-actions .text-button{font-size:12px;padding:7px 0;text-align:left}.python-input-panel code{font-family:'Fira Code',monospace;font-size:11px}.python-room[data-theme="dark"] .python-input-panel{background:#172033;color:#E2E8F0;border-color:#475569}.python-room[data-theme="dark"] .input-order{color:#CBD5E1}.python-room[data-theme="dark"] .input-panel-heading>span,.python-room[data-theme="dark"] .input-panel-actions .text-button,.python-room[data-theme="dark"] .input-guide .text-button{color:#67E8F9}.python-room[data-theme="dark"] #python-input{background:#0B1121;color:#F8FAFC;border-color:#64748B}.python-room[data-theme="dark"] #python-input::placeholder{color:#94A3B8}#challenge-check{padding:10px 12px;border-radius:7px;line-height:1.6}#challenge-check[data-result="passed"]{color:#166534;background:#F0FDF4}#challenge-check[data-result="missing"]{color:#9D174D;background:#FDF2F8}#challenge-check[data-result="pending"]{color:#334155;background:#F1F5F9}
/* 5.4: quiet, progressive learning help and private reports. */
.mission-story{border-left:3px solid #8A2BE2;padding:8px 14px;background:#F8FAFC;color:#334155}
.scratch-check-list{padding-left:20px;max-height:220px;overflow:auto}.scratch-check-list li{padding:5px 0;overflow-wrap:anywhere}.scratch-check-list .passed{color:#166534}.scratch-check-list .missing{color:#475569}
.concept-example pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto}.lesson-explanation li{margin:8px 0}
.challenge-actions [hidden]{display:none!important}.challenge-actions #hint-count{color:#64748B}.bug-report-button{white-space:nowrap;font-size:12px}
[data-bug-report] label{display:grid;gap:6px;margin:16px 0}[data-bug-report] textarea{width:100%;resize:vertical;min-height:130px}
.report-filters,.report-pagination,.bug-report header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.bug-report{padding:20px 0;border-bottom:1px solid #E2E8F0}.bug-report p{white-space:pre-wrap;overflow-wrap:anywhere}.bug-report small{color:#64748B}.bug-report button{display:block;margin-top:8px}.report-pagination{margin-top:18px}
@media(max-width:650px){.topbar-profile{flex-wrap:wrap}.bug-report-button{padding:4px 6px}.editor-wide-toolbar{flex-wrap:wrap}}

.companion-dialog .companion-message{white-space:pre-wrap;max-height:min(42dvh,320px);overflow:auto;overflow-wrap:anywhere}

/* Provider status: text plus color, readable without motion. */
.flow-status,.integration-checklist{padding:1rem 1.2rem;border:1px solid #CBD5E1;border-radius:12px;margin:1rem 0;background:#F8FAFC;color:#1E293B}
.integration-state{display:inline-block;border-radius:8px;padding:.35rem .65rem}
.integration-state.verified{background:#DCFCE7;color:#14532D}
.integration-state.pending{background:#FEF3C7;color:#78350F}
.flow-status[aria-busy="true"]{opacity:.7}
.integration-checklist ul,.flow-status ul{padding-inline-start:1.4rem}
#google-error:empty{display:none}
