.pyc-topbar{grid-area:dtop}.pyc-statusbar{grid-area:dstatus}@media (width<=767px){.pyc-desktop-only{display:none!important}}.pyc-topbar{border-bottom:1px solid var(--border);background:var(--pyc-chrome);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.35rem .75rem;padding:.35rem .5rem;display:flex}.pyc-tb-group{align-items:center;gap:.3rem;min-width:0;display:flex}.pyc-tb-sep{background:var(--border);width:1px;height:1.25rem;margin-inline:.2rem}.pyc-statusbar{background:var(--primary);color:#fff;flex-wrap:wrap;justify-content:space-between;gap:0 1rem;padding:.15rem .6rem;font-size:.7rem;line-height:1.6;display:flex}.pyc-ide[data-theme=dark] .pyc-statusbar{background:#0b4f4a}.pyc-sb-group{flex-wrap:wrap;gap:0 .9rem;min-width:0;display:flex}.pyc-sb-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.pyc-sb-btn:hover{text-decoration:underline}.pyc-mtop{grid-area:mtop}.pyc-mkeys{grid-area:keys}.pyc-mbar{grid-area:mbar}@media (width>=768px){.pyc-mobile-only{display:none!important}}.pyc-sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=767px){.pyc{padding-inline:.5rem}#pyc-ide{--pyc-row:2.4rem;grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"mtop""body""keys""mbar";height:max(420px,100dvh - 4.75rem)}#pyc-ide.is-max{inset:auto 0;top:var(--pyc-vv-top,0px);height:var(--pyc-vv-h,100dvh)}#pyc-ide .pyc-mtop{border-bottom:1px solid var(--border);background:var(--pyc-chrome);align-items:center;gap:.3rem;min-width:0;padding:.3rem .4rem;display:flex;position:relative}#pyc-ide .pyc-mtop-spacer{flex:1}#pyc-ide .pyc-mtop .pyc-project{min-width:0;max-width:40vw;min-height:2.5rem}#pyc-ide .pyc-mtop .pyc-btn{min-height:2.5rem;padding-inline:.9rem}#pyc-ide .pyc-status--dot{background:0 0;border:0;padding:.45rem}#pyc-ide:not(.is-max) .pyc-m-exit,#pyc-ide:not(.is-max) .pyc-m-exit-item,#pyc-ide.is-max .pyc-m-enter-full{display:none}#pyc-ide .pyc-m-dots{font-size:1.35rem;line-height:1}#pyc-ide .pyc-m-menu{top:calc(100% + .25rem);z-index:20;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);flex-direction:column;min-width:13rem;padding:.35rem;display:flex;position:absolute;inset-inline-end:.4rem;box-shadow:0 12px 32px #00000059}#pyc-ide .pyc-m-menu[hidden]{display:none}#pyc-ide .pyc-m-menu button{min-height:2.75rem;color:var(--text);font-family:var(--font-body);text-align:start;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:.65rem;padding:0 .75rem;font-size:.9rem;display:flex}#pyc-ide .pyc-m-menu button:active,#pyc-ide .pyc-m-menu button:hover{background:var(--pyc-primary-soft)}#pyc-ide .pyc-iconbtn{width:2.5rem;height:2.5rem}#pyc-ide .pyc-tree-actions .pyc-iconbtn{width:2rem;height:2rem}#pyc-ide .pyc-iconbtn--sm{width:2.25rem;height:2.25rem}#pyc-ide .pyc-act{width:2.75rem;height:2.75rem}#pyc-ide .pyc-btn--xs{min-height:2.25rem}#pyc-ide .pyc-tabs{min-height:2.5rem}#pyc-ide .pyc-tab{padding-inline-start:.6rem}#pyc-ide .pyc-tab-x{width:2rem;height:2rem}#pyc-ide .pyc-ptab{padding:.6rem .65rem}#pyc-ide .pyc-body{grid-template-columns:minmax(0,1fr)}#pyc-ide .pyc-main{grid-template-rows:auto minmax(0,1fr)}#pyc-ide .pyc-hsplit,#pyc-ide[data-mview=code] .pyc-panel,#pyc-ide[data-mview=output] .pyc-tabs,#pyc-ide[data-mview=output] .pyc-editor-wrap{display:none}#pyc-ide[data-mview=output] .pyc-main{grid-template-rows:minmax(0,1fr)}#pyc-ide .pyc-panel-head{flex-wrap:wrap}#pyc-ide .pyc-activity,#pyc-ide .pyc-sidebar{z-index:6;visibility:hidden;position:absolute;inset-block:0}#pyc-ide .pyc-activity{inset-inline-start:0}#pyc-ide .pyc-sidebar{width:min(18rem,100% - 4rem);box-shadow:var(--card-shadow);inset-inline-start:3.4rem}#pyc-ide[data-sidebar=closed] .pyc-sidebar{display:flex}#pyc-ide[data-drawer=open] .pyc-activity,#pyc-ide[data-drawer=open] .pyc-sidebar{visibility:visible}#pyc-ide[data-drawer=open] .pyc-backdrop{z-index:5;background:#02141366;display:block;position:absolute;inset:0}#pyc-ide .pyc-activity,#pyc-ide .pyc-sidebar,#pyc-ide .pyc-main{grid-area:1/1}#pyc-ide .pyc-mkeys{border-top:1px solid var(--border);background:var(--pyc-chrome);scrollbar-width:none;gap:.3rem;padding:.3rem .4rem;display:none;overflow-x:auto}#pyc-ide[data-mview=code][data-editing=true] .pyc-mkeys{display:flex}#pyc-ide .pyc-mkey{border:1px solid var(--border);background:var(--surface);min-width:2.6rem;height:2.4rem;color:var(--text);font-family:var(--font-code);touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:8px;flex:none;padding:0 .6rem;font-size:.95rem}#pyc-ide .pyc-mkey:active{background:var(--pyc-primary-soft)}#pyc-ide .pyc-mbar{padding:.3rem .4rem calc(.3rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border);background:var(--pyc-chrome);justify-content:space-between;align-items:center;gap:.5rem;display:flex}#pyc-ide .pyc-mswitch{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);padding:.2rem;display:inline-flex}#pyc-ide .pyc-mswitch button{border-radius:var(--radius-pill);min-height:2.35rem;color:var(--text-muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;padding:0 1rem;font-size:.85rem;font-weight:500;display:inline-flex;position:relative}#pyc-ide .pyc-mswitch button[aria-pressed=true]{background:var(--primary);color:#fff}#pyc-ide[data-theme=dark] .pyc-mswitch button[aria-pressed=true]{background:var(--accent);color:var(--bg-dark)}#pyc-ide .pyc-unread{background:var(--pyc-warning);border-radius:9999px;width:.5rem;height:.5rem;display:none}#pyc-ide[data-unread=true] .pyc-unread{display:inline-block}#pyc-ide .pyc-mbar-status{font-family:var(--font-code);color:var(--text-muted);white-space:nowrap;font-size:.72rem}#pyc-ide .pyc-settings{grid-template-columns:minmax(0,1fr)}#pyc-ide .pyc-set-tabs{flex-direction:row;overflow-x:auto}#pyc-ide .pyc-set-tab{white-space:nowrap}}.pyc-body{grid-area:body;grid-template-columns:auto auto minmax(0,1fr);min-height:0;display:grid;position:relative}.pyc-activity{border-inline-end:1px solid var(--border);background:var(--pyc-chrome);flex-direction:column;align-items:center;gap:.2rem;padding:.35rem .3rem;display:flex}.pyc-act-spacer{flex:1}.pyc-act{width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.pyc-act:hover{color:var(--text)}.pyc-act[aria-pressed=true]{background:var(--pyc-primary-soft);color:var(--primary)}.pyc-ide[data-theme=dark] .pyc-act[aria-pressed=true]{color:var(--accent)}.pyc-sidebar{border-inline-end:1px solid var(--border);background:var(--surface);flex-direction:column;width:15.5rem;min-height:0;display:flex}.pyc-ide[data-sidebar=closed] .pyc-sidebar,.pyc-backdrop{display:none}.pyc-view{flex-direction:column;flex:1;min-height:0;display:flex}.pyc-view[hidden]{display:none}.pyc-view-head{letter-spacing:.04em;text-transform:uppercase;min-height:2.1rem;color:var(--text-muted);justify-content:space-between;align-items:center;padding:.2rem .4rem .2rem .75rem;padding-inline:.75rem .3rem;font-size:.7rem;font-weight:700;display:flex}.pyc-view-tools{gap:.1rem;display:flex}.pyc-view-body{flex:1;min-height:0;padding:0 .75rem .75rem;overflow:auto}.pyc-view-body>.pyc-field{width:100%}.pyc-tree{outline:none;flex:1;min-height:0;padding:.1rem .3rem .5rem;overflow:auto}.pyc-tree ul{margin:0;padding:0;list-style:none}.pyc-tree-row{min-height:var(--pyc-row);padding-inline:calc(.4rem + var(--depth,0) * .85rem) .3rem;font-family:var(--font-code);color:var(--text);cursor:pointer;user-select:none;border-radius:6px;align-items:center;gap:.35rem;font-size:.78rem;display:flex;position:relative}.pyc-tree-row:hover{background:var(--pyc-primary-soft)}.pyc-tree-row[aria-selected=true]{background:color-mix(in srgb, var(--primary) 18%, transparent)}.pyc-tree:focus-visible .pyc-tree-row[aria-selected=true]{outline:1.5px solid var(--primary);outline-offset:-1.5px}.pyc-tree-row.is-open .pyc-tree-name{font-weight:700}.pyc-tree-row.is-drop{outline:2px dashed var(--primary);outline-offset:-2px}.pyc-tree-row .pyc-icon{color:var(--text-muted)}.pyc-tree-row[data-kind=folder]>.pyc-icon{color:var(--primary)}.pyc-ide[data-theme=dark] .pyc-tree-row[data-kind=folder]>.pyc-icon{color:var(--accent)}.pyc-tree-chev{width:.8rem;color:var(--text-muted);transition:transform .12s;display:inline-grid}.pyc-tree-row[aria-expanded=true] .pyc-tree-chev{transform:rotate(90deg)}.pyc-tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pyc-tree-actions{gap:.05rem;display:none}.pyc-tree-row:hover .pyc-tree-actions,.pyc-tree-row[aria-selected=true] .pyc-tree-actions{display:flex}.pyc-tree-actions .pyc-iconbtn{width:1.35rem;height:1.35rem}.pyc-tree-dirty{background:var(--pyc-warning);border-radius:9999px;width:.45rem;height:.45rem}.pyc-examples-box{border-top:1px solid var(--border);flex-direction:column;gap:.3rem;padding:.6rem .75rem .75rem;display:flex}.pyc-search-results{font-family:var(--font-code);font-size:.75rem}.pyc-search-file{color:var(--heading);margin:.6rem 0 .2rem;font-weight:700}.pyc-search-hit{width:100%;color:var(--text);font:inherit;text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:.15rem .3rem;display:block;overflow:hidden}.pyc-search-hit:hover{background:var(--pyc-primary-soft)}.pyc-search-hit .ln{min-width:2.2rem;color:var(--text-muted);display:inline-block}.pyc-search-hit mark{background:color-mix(in srgb, var(--pyc-warning) 35%, transparent);color:inherit;border-radius:2px}.pyc-pkg-form{gap:.35rem;display:flex}.pyc-pkg{font-family:var(--font-code);flex:1}.pyc-chips{flex-wrap:wrap;gap:.3rem;display:flex}.pyc-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-family:var(--font-code);cursor:pointer;padding:.15rem .55rem;font-size:.72rem}.pyc-chip:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.pyc-chip:disabled{opacity:.5;cursor:not-allowed}.pyc-pkg-installed{font-family:var(--font-code);column-width:6rem;margin:0;padding:0;font-size:.75rem;list-style:none}.pyc-pkg-installed li{padding:.1rem 0}.pyc-main{--pyc-panel-h:40%;grid-template-rows:auto minmax(0, 1fr) 5px minmax(5rem, var(--pyc-panel-h));min-width:0;min-height:0;display:grid}.pyc-tabs{border-bottom:1px solid var(--border);background:var(--pyc-chrome);scrollbar-width:thin;min-height:2.15rem;display:flex;overflow:auto hidden}.pyc-tab{border:0;border-right:1px solid var(--border);color:var(--text-muted);font-family:var(--font-code);white-space:nowrap;cursor:pointer;background:0 0;align-items:center;gap:.35rem;padding:0 .3rem 0 .75rem;font-size:.76rem;display:flex}.pyc-tab[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:inset 0 2px 0 var(--primary)}.pyc-ide[data-theme=dark] .pyc-tab[aria-selected=true]{box-shadow:inset 0 2px 0 var(--accent)}.pyc-tab.is-drop{box-shadow:inset 3px 0 0 var(--primary)}.pyc-tab-x{width:1.2rem;height:1.2rem;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;display:grid}.pyc-tab-x:hover{background:var(--pyc-primary-soft)}.pyc-tab-x .pyc-tab-dot{background:currentColor;border-radius:9999px;width:.5rem;height:.5rem}.pyc-tab-x .pyc-icon,.pyc-tab:not(.is-dirty) .pyc-tab-dot,.pyc-tab.is-dirty:hover .pyc-tab-dot{display:none}.pyc-tab:not(.is-dirty) .pyc-icon,.pyc-tab.is-dirty:hover .pyc-icon{display:block}.pyc-editor-wrap{min-height:0;position:relative}.pyc-editor{--pyc-font-size:14px;height:100%}.pyc-editor .cm-editor{height:100%}.pyc-editor .cm-scroller{overflow:auto}.pyc-ide[data-theme=dark] .pyc-editor .cm-editor,.pyc-ide[data-theme=dark] .pyc-editor .cm-gutters{background:var(--surface)}.pyc-ide[data-theme=dark] .pyc-editor .cm-activeLine,.pyc-ide[data-theme=dark] .pyc-editor .cm-activeLineGutter{background:var(--code-bg)}.pyc-editor-empty{text-align:center;color:var(--text-muted);background:var(--surface);place-items:center;margin:0;padding:2rem;font-size:.9rem;display:grid;position:absolute;inset:0}.pyc-editor-empty[hidden]{display:none}.pyc-hsplit{background:var(--border);cursor:row-resize;touch-action:none}.pyc-hsplit:hover,.pyc-hsplit:focus-visible{background:var(--primary);outline:none}.pyc-panel{background:var(--pyc-term-bg);grid-template-rows:auto minmax(0,1fr) auto;min-height:0;display:grid}.pyc-panel-head{border-bottom:1px solid var(--border);background:var(--pyc-chrome);justify-content:space-between;align-items:center;gap:.5rem;padding:0 .5rem;display:flex}.pyc-ptabs{gap:.15rem;display:flex;overflow-x:auto}.pyc-ptab{color:var(--text-muted);font-family:var(--font-body);cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:.35rem;padding:.45rem .6rem;font-size:.74rem;font-weight:500;display:inline-flex;box-shadow:inset 0 -2px #0000}.pyc-ptab[aria-selected=true]{color:var(--text);box-shadow:inset 0 -2px 0 var(--primary)}.pyc-count{border-radius:var(--radius-pill);background:var(--pyc-primary-soft);text-align:center;min-width:1.15rem;padding:0 .3rem;font-size:.68rem}.pyc-count.is-error{background:var(--pyc-error);color:#fff}.pyc-pane-tools{align-items:center;gap:.5rem;display:flex}.pyc-time{font-family:var(--font-code);font-variant-numeric:tabular-nums;color:var(--primary);font-size:.72rem}.pyc-ide[data-theme=dark] .pyc-time{color:var(--accent)}.pyc-pview{min-height:0;position:relative;overflow:auto}.pyc-pview[data-panel=terminal]{overflow:hidden}.pyc-term{position:absolute;inset:0}.pyc-term .xterm{height:100%;padding:6px 4px 6px 10px}.pyc-term .xterm-viewport{background:var(--pyc-term-bg)!important}.pyc-term .xterm a,.pyc-term .xterm .xterm-underline-1{cursor:pointer}.pyc-boot{background:color-mix(in srgb, var(--pyc-term-bg) 94%, transparent);z-index:2;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.pyc-boot[hidden]{display:none}.pyc-boot-card{text-align:center;width:min(30rem,100%)}.pyc-boot-title{font-family:var(--font-brand);color:var(--heading);margin:0 0 .35rem;font-size:1.05rem;font-weight:700}.pyc-boot-body{color:var(--text-muted);margin:0 0 .8rem;font-size:.8rem;line-height:1.7}.pyc-progress{border-radius:var(--radius-pill);background:var(--border);height:.4rem;overflow:hidden}.pyc-progress-bar{border-radius:inherit;background:var(--primary);width:0;height:100%;transition:width .25s;display:block}.pyc-ide[data-theme=dark] .pyc-progress-bar{background:var(--accent)}.pyc-progress.is-indeterminate .pyc-progress-bar{animation:1.4s ease-in-out infinite pyc-indeterminate}@keyframes pyc-indeterminate{50%{opacity:.45}}.pyc-boot-step{color:var(--text-muted);font-variant-numeric:tabular-nums;margin:.45rem 0 0;font-size:.74rem}.pyc-input-row{border-top:1px solid var(--primary);background:var(--pyc-primary-soft);align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex}.pyc-input-row[hidden]{display:none}.pyc-input-prompt{color:var(--primary);font-family:var(--font-code)}.pyc-input{border:1.5px solid var(--border);background:var(--surface);min-width:0;color:var(--text);font-family:var(--font-code);border-radius:8px;flex:1;padding:.35rem .5rem;font-size:16px}.pyc-problems{margin:0;padding:.3rem;font-size:.78rem;list-style:none}.pyc-problems button{width:100%;color:var(--text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;border-radius:6px;gap:.5rem;padding:.3rem .5rem;display:flex}.pyc-problems button:hover{background:var(--pyc-primary-soft)}.pyc-problems .sev{color:var(--pyc-error)}.pyc-problems .loc{font-family:var(--font-code);color:var(--text-muted);white-space:nowrap}.pyc-problems .empty{color:var(--text-muted);padding:.5rem}.pyc-plots{flex-direction:column;gap:.75rem;padding:.75rem;display:flex}.pyc-img{border:1px solid var(--border);background:#fff;border-radius:8px;max-width:100%;display:block}.pyc-dialog,.pyc-palette{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);color:var(--text);box-shadow:0 20px 50px #0000004d}.pyc-dialog{width:min(38rem,100vw - 2rem);max-height:min(42rem,100dvh - 2rem);padding:1rem 1.1rem;overflow:auto}.pyc-dialog--sm{width:min(26rem,100vw - 2rem)}.pyc-dialog--lg{width:min(46rem,100vw - 2rem)}.pyc-dialog::backdrop,.pyc-palette::backdrop{background:#02141380}.pyc-dialog-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.pyc-dialog-title{margin:0 0 .6rem;font-size:1.1rem}.pyc-dialog-head .pyc-dialog-title{margin:0}.pyc-dialog-tools{flex-wrap:wrap;gap:.4rem;margin:.75rem 0;display:flex}.pyc-dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.pyc-dialog-actions #pyc-set-defaults{margin-inline-end:auto}.pyc-ask-message{white-space:pre-line;margin:0 0 .75rem;font-size:.9rem;line-height:1.7}#pyc-ask-input{width:100%;font-family:var(--font-code)}.pyc-ask-error{min-height:1.2em;color:var(--pyc-error);margin:.35rem 0 0;font-size:.75rem}.pyc-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.pyc-list li{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.6rem .75rem;display:flex}.pyc-list li.is-current{border-color:var(--primary);background:var(--pyc-primary-soft)}.pyc-list .meta{flex:1;min-width:10rem}.pyc-list .name{color:var(--heading);font-weight:700;display:block}.pyc-list .sub{color:var(--text-muted);font-size:.72rem;display:block}.pyc-list .actions{gap:.3rem;display:flex}.pyc-palette{width:min(36rem,100vw - 2rem);margin-top:12vh;padding:0;overflow:hidden}.pyc-pal-input{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);font-family:var(--font-body);background:0 0;outline:none;padding:.75rem 1rem;font-size:.95rem}.pyc-pal-list{max-height:min(22rem,60dvh);margin:0;padding:.35rem;list-style:none;overflow:auto}.pyc-pal-list li{cursor:pointer;border-radius:7px;justify-content:space-between;align-items:center;gap:1rem;padding:.4rem .65rem;font-size:.85rem;display:flex}.pyc-pal-list li[aria-selected=true]{background:var(--pyc-primary-soft)}.pyc-pal-list .hint{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.pyc-pal-list .path{font-family:var(--font-code);font-size:.8rem}.pyc-settings{grid-template-columns:9.5rem minmax(0,1fr);gap:1rem;min-height:20rem;margin-top:.75rem;display:grid}.pyc-set-tabs{flex-direction:column;gap:.2rem;display:flex}.pyc-set-tab{color:var(--text-muted);font-family:var(--font-body);text-align:start;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.45rem .7rem;font-size:.85rem}.pyc-set-tab[aria-selected=true]{background:var(--pyc-primary-soft);color:var(--primary);font-weight:700}.pyc-ide[data-theme=dark] .pyc-set-tab[aria-selected=true]{color:var(--accent)}.pyc-set-pane{flex-direction:column;gap:.15rem;display:flex}.pyc-set-pane[hidden]{display:none}.pyc-set-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:.45rem 0;font-size:.85rem;display:flex}.pyc-set-row--check{cursor:pointer;justify-content:flex-start}.pyc-set-row--check input{width:1.05rem;height:1.05rem;accent-color:var(--primary)}.pyc-set-row--block{flex-direction:column;align-items:stretch;gap:.4rem}.pyc-set-row select{max-width:55%}.pyc-set-range{align-items:center;gap:.5rem;display:flex}.pyc-set-range input{accent-color:var(--primary)}.pyc-set-range output{min-width:3rem;font-family:var(--font-code);text-align:end;font-size:.78rem}.pyc-env{font-family:var(--font-code);resize:vertical}.pyc-seg{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.pyc-seg-btn{color:var(--text);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;padding:.3rem .8rem;font-size:.8rem}.pyc-seg-btn[aria-pressed=true]{background:var(--primary);color:#fff}.pyc-font-preview{background:var(--code-bg);font-family:var(--font-code);font-size:var(--pyc-font-size,14px);border-radius:8px;margin:.5rem 0 0;padding:.75rem;overflow-x:auto}.pyc-danger{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.pyc-danger .pyc-subhead{width:100%}.pyc-toast{z-index:90;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);max-width:calc(100vw - 2rem);color:var(--text);box-shadow:var(--card-shadow);padding:.5rem .9rem;font-size:.85rem;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.pyc-icon{flex:none;display:block}.pyc-btn{border-radius:var(--radius-pill);min-height:2rem;color:var(--text);font-family:var(--font-body);white-space:nowrap;cursor:pointer;background:0 0;border:1.5px solid #0000;justify-content:center;align-items:center;gap:.35rem;padding:.25rem .8rem;font-size:.82rem;font-weight:500;line-height:1.2;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.pyc-btn:disabled{opacity:.5;cursor:not-allowed}.pyc-btn--primary{background:var(--primary);border-color:var(--primary);color:#fff;font-family:var(--font-brand);font-weight:700}.pyc-btn--primary:not(:disabled):hover{background:var(--primary-hover);border-color:var(--primary-hover)}.pyc-ide[data-theme=dark] .pyc-btn--primary{background:var(--accent);border-color:var(--accent);color:var(--bg-dark)}.pyc-btn--outline{border-color:var(--border);background:var(--surface)}.pyc-btn--danger{border-color:var(--pyc-error);color:var(--pyc-error)}.pyc-btn--danger:hover{background:color-mix(in srgb, var(--pyc-error) 12%, transparent)}.pyc-btn--outline:not(:disabled):hover,.pyc-btn--ghost:not(:disabled):hover,.pyc-iconbtn:not(:disabled):hover{background:var(--pyc-primary-soft);color:var(--primary)}.pyc-ide[data-theme=dark] .pyc-btn--outline:not(:disabled):hover,.pyc-ide[data-theme=dark] .pyc-btn--ghost:not(:disabled):hover,.pyc-ide[data-theme=dark] .pyc-iconbtn:not(:disabled):hover{color:var(--accent)}.pyc-btn--xs{min-height:1.65rem;padding:.1rem .65rem;font-size:.76rem}.pyc-iconbtn{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:inline-grid}.pyc-iconbtn--sm{border-radius:6px;width:1.6rem;height:1.6rem}.pyc-iconbtn[aria-pressed=true]{color:var(--primary);background:var(--pyc-primary-soft)}.pyc-kbd{font-family:var(--font-body);opacity:.8;border:1px solid;border-radius:6px;padding:.05em .4em;font-size:.7em;display:inline-block}.pyc-field{border:1.5px solid var(--border);background:var(--surface);min-height:2rem;color:var(--text);font-family:var(--font-body);border-radius:8px;min-width:0;padding:.25rem .6rem;font-size:.82rem}.pyc-field:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--primary)}.pyc-label{color:var(--text-muted);font-size:.75rem}.pyc-muted-sm{color:var(--text-muted);margin:.5rem 0;font-size:.75rem;line-height:1.6}.pyc-subhead{font-family:var(--font-body);letter-spacing:.02em;color:var(--text-muted);margin:1rem 0 .4rem;font-size:.72rem;font-weight:700}.pyc-alert{border-radius:var(--radius-card);border:1px solid color-mix(in srgb, var(--pyc-warning) 40%, transparent);background:color-mix(in srgb, var(--pyc-warning) 10%, transparent);color:var(--pyc-warning);margin:.75rem 0 0;padding:.6rem .9rem;font-size:.875rem}.pyc-hint{margin:.75rem 0 0;font-size:.8rem;line-height:2}.pyc-ide{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);height:clamp(520px,100dvh - 8rem,940px);box-shadow:var(--card-shadow);color:var(--text);font-family:var(--font-body);--pyc-chrome:var(--code-bg);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"dtop""body""dstatus";scroll-margin-top:4.75rem;display:grid;position:relative;overflow:hidden}.pyc-ide[data-theme=dark]{--surface:#0b3d3b;--text:#ecfdf5;--heading:#f0fdfa;--text-muted:#a7c4c0;--border:#145c58;--code-bg:#062826;--primary-hover:var(--accent);--card-shadow:0 2px 12px #00000059;--pyc-error:#f87171;--pyc-warning:#fbbf24;--pyc-success:var(--accent);--pyc-primary-soft:color-mix(in srgb, var(--accent) 16%, transparent);--pyc-term-bg:#062826;color-scheme:dark}.pyc-ide[data-theme=light]{--surface:#fff;--text:#0f172a;--heading:var(--ink);--text-muted:#475569;--border:#dbe7e4;--code-bg:#f1f5f4;--primary-hover:#115e59;--card-shadow:0 2px 10px #0f172a14;--pyc-error:#dc2626;--pyc-warning:#d97706;--pyc-success:var(--primary);--pyc-primary-soft:color-mix(in srgb, var(--primary) 12%, transparent);--pyc-term-bg:var(--surface);color-scheme:light}.pyc-ide.is-max{z-index:80;border:0;border-radius:0;height:100dvh;position:fixed;inset:0}.pyc-ide[data-density=compact]{--pyc-row:1.45rem}.pyc-ide[data-density=compact] .pyc-btn{min-height:1.75rem}.pyc-project{border:1px solid var(--border);background:var(--surface);max-width:14rem;min-height:2rem;color:var(--heading);font-family:var(--font-body);cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;padding:.2rem .6rem;font-size:.8rem;font-weight:700;display:inline-flex}.pyc-project span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pyc-project:hover{border-color:var(--primary)}.pyc-badge{border-radius:var(--radius-pill);background:var(--pyc-primary-soft);color:var(--primary);padding:.1rem .5rem;font-size:.7rem;font-weight:500}.pyc-ide[data-theme=dark] .pyc-badge{color:var(--accent)}.pyc-status{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);min-width:0;color:var(--text-muted);align-items:center;gap:.45rem;padding:.2rem .7rem;font-size:.74rem;display:inline-flex}.pyc-status-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pyc-dot{background:var(--text-muted);border-radius:9999px;flex:none;width:.5rem;height:.5rem}.pyc-status[data-state=loading] .pyc-dot{background:var(--pyc-warning);animation:1s ease-in-out infinite pyc-pulse}.pyc-status[data-state=ready] .pyc-dot{background:var(--pyc-success)}.pyc-status[data-state=running] .pyc-dot{background:var(--primary);animation:.8s ease-in-out infinite pyc-pulse}.pyc-status[data-state=input] .pyc-dot{background:var(--pyc-warning)}.pyc-status[data-state=error]{color:var(--pyc-error)}.pyc-status[data-state=error] .pyc-dot{background:var(--pyc-error)}@keyframes pyc-pulse{50%{opacity:.25}}.pyc-ide[data-running=true] .pyc-swap[data-act=run],.pyc-ide:not([data-running=true]) .pyc-swap[data-act=stop]{display:none}.pyc,.pyc-seo{--pyc-error:#dc2626;--pyc-warning:#d97706;--pyc-success:var(--primary);--pyc-primary-soft:color-mix(in srgb, var(--primary) 12%, transparent);--pyc-chrome:var(--code-bg);--pyc-term-bg:var(--surface);--pyc-row:1.75rem}:root[data-theme=dark] .pyc,:root[data-theme=dark] .pyc-seo{--pyc-error:#f87171;--pyc-warning:#fbbf24;--pyc-success:var(--accent);--pyc-primary-soft:color-mix(in srgb, var(--accent) 16%, transparent);--pyc-term-bg:#062826}#pyc-ide{scroll-margin-top:5rem}.pyc{padding-block:1.5rem 2rem}.pyc-head{margin-bottom:1rem}.pyc-title{margin-bottom:.15em;font-size:clamp(1.6rem,3vw + .5rem,2.2rem)}.pyc-lead{margin:0;font-size:.95rem}.pyc-seo{flex-direction:column;gap:3rem;max-width:60rem;padding-block:2rem 4rem;display:flex}.pyc-seo-section>.tag{margin-bottom:.6rem}.pyc-seo-section h2{margin-bottom:.9rem}.pyc-byline{flex-wrap:wrap;gap:.4rem;margin:-.4rem 0 1rem;font-size:.85rem;display:flex}.pyc-byline a{font-weight:500}.pyc-figure{border-radius:var(--radius-card);border:1px solid var(--border);box-shadow:var(--card-shadow);margin:0 0 1.25rem;overflow:hidden}.pyc-figure img{width:100%;height:auto;display:block}.pyc-seo-text{font-size:1.05rem;line-height:1.9}.pyc-seo-text p:last-child{margin-bottom:0}.pyc-card-title{font-family:var(--font-body);margin:0 0 .25rem;font-size:.95rem;font-weight:700}.pyc-card-text{margin:0;font-size:.9rem;line-height:1.7}.pyc-features{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.pyc-steps{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.pyc-steps>li{align-items:flex-start;gap:.85rem;display:flex}.pyc-step-num{background:var(--pyc-primary-soft);width:2rem;height:2rem;color:var(--primary);font-family:var(--font-code);border-radius:9999px;flex:none;place-items:center;font-size:.85rem;font-weight:600;display:grid}:root[data-theme=dark] .pyc-step-num{color:var(--accent)}.pyc-book-chapter+.pyc-book-chapter{margin-top:1.25rem}.pyc-book-chapter .pyc-card-title{margin:1rem 0 .5rem}.pyc-book-list{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.4rem 1.5rem;margin:0;padding-inline-start:1.5rem;font-size:.95rem;display:grid}.pyc-book-list li{align-items:baseline;gap:.5rem;display:flex}.pyc-book-run{background:var(--pyc-primary-soft);border-radius:9999px;flex:none;place-items:center;width:1.6rem;height:1.6rem;font-size:.7rem;text-decoration:none;display:inline-grid}button.pyc-book-run{color:var(--primary);cursor:pointer;border:0;padding:0}:root[data-theme=dark] button.pyc-book-run{color:var(--accent)}.pyc-book-open{font:inherit;color:var(--primary);text-align:start;cursor:pointer;background:0 0;border:0;padding:0}.pyc-book-open:hover{text-underline-offset:3px;text-decoration:underline}.pyc-book-run:hover{background:var(--primary);color:#fff}.pyc-book-topics{font-family:var(--font-code);margin-inline-start:auto;font-size:.75rem}.pyc-table-wrap{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);overflow-x:auto}.pyc-table{border-collapse:collapse;width:100%;min-width:40rem;font-size:.875rem}.pyc-table th,.pyc-table td{border-bottom:1px solid var(--border);text-align:start;vertical-align:top;padding:.6rem .85rem}.pyc-table thead th{background:var(--code-bg);color:var(--text-muted);font-size:.78rem;font-weight:700}.pyc-table tbody th{color:var(--heading);white-space:nowrap;font-weight:700}.pyc-table tbody td:first-of-type{color:var(--primary);font-weight:500}.pyc-ide[data-theme=dark] .pyc-table tbody td:first-of-type{color:var(--accent)}.pyc-table tr:last-child th,.pyc-table tr:last-child td{border-bottom:0}.pyc-note{margin:.9rem 0 0;font-size:.9rem}.pyc-faq{flex-direction:column;gap:.5rem;display:flex}.pyc-faq details{padding:0}.pyc-faq details summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.1rem;list-style:none;display:flex}.pyc-faq details summary::-webkit-details-marker{display:none}.pyc-faq details summary h3{font-family:var(--font-body);color:var(--heading);margin:0;font-size:.95rem;font-weight:700}.pyc-faq-chev{color:var(--text-muted);flex:none;transition:transform .2s}.pyc-faq details[open] .pyc-faq-chev{transform:rotate(180deg)}.pyc-faq details>p{color:var(--text-muted);margin:0;padding:0 1.1rem 1rem;font-size:.925rem;line-height:1.85}.pyc-en h2{font-family:var(--font-body);font-weight:700}.pyc-cta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem;display:flex}.pyc-cta-title{margin-bottom:.25rem;font-size:1.25rem}.pyc-cta-text{margin:0;font-size:.9rem}.pyc-cta-text a{text-underline-offset:3px;text-decoration:underline}
