:root{--ink:#213c39;--muted:#6b7873;--line:#dce2d9;--paper:#f7f8f3;--green:#246a58;--wash:#eaf0e6;--code-width:45%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--paper);font-size:14px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button,select,summary{cursor:pointer}button,select{min-height:40px;border:1px solid var(--line);border-radius:6px;background:#fff;padding:7px 12px}button:hover,summary:hover{background:var(--wash)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:#1c5647}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}input,textarea{border:1px solid var(--line);background:#fff;border-radius:5px;padding:10px;min-width:0}input[type=checkbox]{accent-color:var(--green);width:17px;height:17px;vertical-align:middle}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #5a9e82;outline-offset:2px}button[aria-pressed=true]{background:var(--wash);color:var(--green);border-color:#91b6a0}
.toolbar{height:88px;display:flex;align-items:center;justify-content:space-between;padding:14px 26px;gap:16px;border-bottom:1px solid var(--line);flex:none}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);font-size:23px;letter-spacing:-.8px;white-space:nowrap}.brand:hover{text-decoration:none}.brand strong{font-weight:450;color:var(--green)}.brand small{display:block;font-size:11px;letter-spacing:.03em;color:var(--muted);margin-top:4px}.brand-icon{font-size:34px;background:var(--green);color:white;width:43px;height:43px;display:grid;place-content:center;border-radius:10px}.toolbar-actions{display:flex;gap:8px;align-items:center}.auto-label{color:var(--muted);font-size:12px;margin-right:12px;display:flex;gap:7px;align-items:center;white-space:nowrap}.toolbar #run{min-width:90px}details#more{position:relative}summary{list-style:none;min-height:40px;display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:6px;padding:8px 12px;background:white}summary::-webkit-details-marker{display:none}.more-menu{position:absolute;right:0;top:48px;z-index:20;background:var(--paper);box-shadow:0 12px 50px #142d3129;border:1px solid var(--line);border-radius:10px;padding:18px;width:310px;max-height:calc(100dvh - 120px);overflow:auto;display:grid;gap:9px}.more-menu label:not(.check-label){display:grid;gap:6px;font-size:12px}.menu-label{font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:8px 0 3px}.fine{font-size:12px;line-height:1.6;color:var(--muted);margin:5px 0}.inline-controls{display:flex;gap:6px}.inline-controls input{width:100%}.check-label{display:flex;align-items:center;gap:7px;font-size:13px}.docs-links{display:grid;grid-template-columns:1fr 1fr;gap:3px}.docs-links a{min-height:40px;display:flex;align-items:center;font-size:12px}#notice{padding:10px 24px;background:#fff0c9;border-bottom:1px solid #eadbb5;font-size:13px;line-height:1.5}
#workspace{display:flex;flex:1;min-height:0;padding:18px 20px 0;gap:0}#code-pane{width:var(--code-width);min-width:240px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px;background:white;overflow:hidden}.pane-heading{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 16px;background:#f0f3ec;border-bottom:1px solid var(--line);flex:none}.pane-heading>span{font-size:10px;font-weight:700;letter-spacing:.13em;color:var(--muted)}.pane-heading>div{display:flex;gap:6px}.pane-heading button{background:transparent;border:0;min-height:40px;padding:5px 8px}#add-file{font-size:22px;min-width:40px}#file-tabs{height:44px;display:flex;overflow:auto;flex:none;scrollbar-width:thin;border-bottom:1px solid var(--line);background:#fafbf8}#file-tabs button{white-space:nowrap;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;font:12px ui-monospace,monospace;min-width:110px;position:relative}#file-tabs button[aria-selected=true]{background:#fff;color:var(--green);font-weight:600}#file-tabs button[aria-selected=true]:after{content:'';position:absolute;bottom:0;height:2px;background:var(--green);left:12px;right:12px}#ace-editor{flex:1;min-height:0;font:14px/1.6 ui-monospace,monospace}#ace-editor textarea{font-size:16px!important}.fallback-editor{width:100%;height:100%;resize:none;border:0;outline:0;font:16px/1.5 monospace;padding:16px}.code-status{height:31px;padding:7px 12px;border-top:1px solid var(--line);color:var(--muted);display:flex;justify-content:space-between;font-size:10px;flex:none}#file-mode{text-transform:uppercase;letter-spacing:.08em}#splitter{flex:none;width:16px;cursor:col-resize;position:relative;touch-action:none}#splitter:after{content:'';position:absolute;width:3px;height:30px;border-radius:2px;background:#c8d1c6;left:7px;top:45%}#preview-pane{flex:1;min-width:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:white}.preview-heading{min-height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;gap:4px;border-bottom:1px solid var(--line);background:#f0f3ec;flex:none}.page-location{display:flex;align-items:center;min-width:0;gap:6px}.page-location span{font:11px ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-heading button{border:0;background:transparent;font-size:11px;padding:6px 8px;min-width:40px}.preview-actions{display:flex;align-items:center;gap:2px;flex:none}.devices{display:flex;padding-right:7px;border-right:1px solid var(--line);margin-right:4px}.devices button{min-width:40px;padding:5px 7px}.devices button[aria-pressed=true]{background:white;box-shadow:0 1px 4px #1c41301a}#preview-stage{background:#e8ece5;flex:1;overflow:auto;display:flex;justify-content:center;min-height:100px}#preview{height:100%;min-height:100%;width:100%;border:0;background:#fff;flex-shrink:0}#console-pane{height:190px;min-height:44px;display:flex;flex-direction:column;flex:none;border-top:1px solid var(--line);background:#fff}.console-heading{height:42px;display:flex;justify-content:space-between;align-items:center;background:#fafbf8;border-bottom:1px solid var(--line);padding:0 8px;flex:none}.console-heading button{border:0;background:transparent;font-size:11px;padding:5px 8px}.console-heading>div{display:flex;align-items:center;gap:2px}.console-heading label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:4px;margin-right:6px}.console-heading input{width:13px;height:13px}#console-count,#mobile-console-count{font-size:10px;background:var(--wash);padding:1px 5px;border-radius:4px;margin-left:4px}#console-list{flex:1;min-height:0;overflow:auto;font:12px/1.5 ui-monospace,monospace}.console-entry{padding:7px 12px;border-bottom:1px solid #eef0ea;display:flex;gap:8px;align-items:start;overflow-wrap:anywhere}.console-entry>span,.console-entry details{flex:1;white-space:pre-wrap;min-width:0}.console-entry summary{white-space:pre-wrap;border:0;background:transparent;padding:0;min-height:24px;display:block}.console-entry pre{white-space:pre-wrap}.console-entry.warn{background:#fffaeb;color:#8c6414}.console-entry.error{background:#fff1ee;color:#a03e2d}.console-entry .console-location{font:10px ui-monospace,monospace;border:0;background:transparent;white-space:nowrap;padding:0 3px;min-height:24px;color:inherit}#console-form{height:39px;flex:none;border-top:1px solid var(--line);display:flex;align-items:center;padding:0 10px;gap:6px}#console-expression{flex:1;border:0;padding:5px;font:12px ui-monospace,monospace;outline:0}#console-form button{font-size:10px;border:0;background:transparent;min-height:36px}.console-collapsed #console-pane{height:43px}.console-collapsed #console-list,.console-collapsed #console-form{display:none}#app-footer{height:43px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 23px;gap:12px;color:var(--muted);font-size:10px}#app-footer a{font-size:11px}#app-footer button{font-size:10px;min-height:30px;padding:3px 7px}.status-dot{display:inline-block;width:6px;height:6px;background:#80a57c;border-radius:50%;margin-right:5px}.editor-hidden #code-pane,.editor-hidden #splitter{display:none}.mobile-tabs,.mobile-only{display:none!important}
dialog{color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:0 20px 100px #172c3833;width:480px;max-width:calc(100vw - 30px);max-height:calc(100dvh - 30px);overflow:auto;background:var(--paper)}dialog::backdrop{background:#112c3166;backdrop-filter:blur(3px)}dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}dialog h2{font-size:21px;letter-spacing:-.5px;margin:0}dialog header button{border:0;background:transparent;font-size:23px;min-width:40px}dialog label:not(.check-label){display:grid;gap:7px;font-size:12px;margin:13px 0}dialog textarea{width:100%;resize:vertical;font:12px/1.5 ui-monospace,monospace;overflow-wrap:anywhere}.dialog-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.danger{color:#a3382f}#hashbin-message{white-space:pre-line;font-size:14px;line-height:1.7}#qr-code{margin:20px auto;display:flex;justify-content:center}#qr-code svg{width:260px;height:260px;max-width:100%}#view-strip{display:none}[data-view=true] #editor-shell,[data-view=true] #code-pane,[data-view=true] #splitter,[data-view=true] .preview-heading,[data-view=true] #console-pane,[data-view=true] #app-footer{display:none!important}[data-view=true] #view-strip{display:flex;flex:none;gap:4px;align-items:center;justify-content:center;background:var(--paper);height:36px;min-height:36px;font:11px system-ui;z-index:99}[data-view=true] #view-strip button{min-height:28px;padding:3px 10px;margin-left:10px}[data-view=true] #workspace{padding:0;flex:1;min-height:0}[data-view=true] #preview-pane{border:0;border-radius:0}[data-view=true] #preview-stage{min-height:0}
@media(max-width:1100px){.devices{display:none}#app-footer>span:last-child{display:none}.toolbar{padding:12px 20px}.auto-label{margin-right:2px}.preview-heading button{padding:5px}}
@media(max-width:760px),(max-height:500px){body{overflow:hidden}.toolbar{height:68px;padding:10px 12px;gap:8px}.brand{font-size:19px;gap:8px}.brand-icon{width:33px;height:33px;font-size:28px;border-radius:8px}.brand small{font-size:9px;letter-spacing:0}.toolbar-actions{gap:6px}.toolbar #run{min-width:64px;padding:7px 9px}.toolbar-actions summary{padding:8px 10px}.desktop-action,.auto-label{display:none}.mobile-only{display:flex!important}.more-menu{width:min(310px,calc(100vw - 24px));top:46px;max-height:calc(100dvh - 86px);padding:15px}.mobile-tabs{display:flex!important;padding:0 12px;gap:6px;border-bottom:1px solid var(--line);height:48px;align-items:center}.mobile-tabs button{border:0;background:transparent;border-radius:0;min-height:44px;flex:1;font-size:12px}.mobile-tabs button[aria-pressed=true]{box-shadow:inset 0 -2px var(--green)}#workspace{padding:9px 10px 0}#code-pane{width:100%;min-width:0}#splitter{display:none}#preview-pane{width:100%}body[data-panel=preview] #code-pane,body[data-panel=code] #preview-pane,body[data-panel=console] #code-pane{display:none}body[data-panel=preview] #console-pane{display:none}body[data-panel=console] #preview-stage,body[data-panel=console] .preview-heading{display:none}body[data-panel=console] #console-pane{height:100%;flex:1;border:0}#console-pane button{min-height:40px}#console-expression{font-size:16px;min-height:44px}#console-form{height:48px}.console-heading{height:48px}.console-heading label{font-size:10px}.console-entry .console-location{min-height:40px}#app-footer{height:37px;padding:0 12px;font-size:9px}#app-footer>a{font-size:10px}#app-footer button{min-height:32px}#notice{font-size:12px;padding:7px 12px}input,select,textarea{font-size:16px}button{min-height:40px}#preview-stage{min-height:0}.preview-heading{height:44px}#open-page{font-size:10px!important}.code-status{font-size:9px}.editor-hidden #code-pane{display:flex}.console-collapsed #console-list,.console-collapsed #console-form{display:flex}[data-view=true] #preview-pane{display:flex!important}[data-view=true] #preview-stage{display:flex!important}[data-view=true] #workspace{padding:0}[data-view=true] #view-strip{font-size:10px}.console-collapsed #console-list{display:block}}

/* Give compact labels and links a usable touch area without enlarging their text. */
.check-label,.console-heading label{min-height:40px}.brand{min-height:44px}
@media(max-width:760px),(max-height:500px){#app-footer{height:43px}#app-footer>a{display:flex;align-items:center;min-height:40px}#view-strip{min-height:40px!important;height:40px!important}#view-strip a{min-height:40px;display:flex;align-items:center}}

#file-tabs button{flex:0 0 auto}
@media(max-width:760px),(max-height:500px){#app-footer>span:first-child{display:flex;align-items:center;gap:4px;white-space:nowrap;min-width:0}#app-footer:has(#offline-action:not([hidden]))>a{display:none}}
.user-content-label{flex:none;font-size:10px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 5px}
