*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased}
body{min-height:100vh;overflow:hidden}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
button,input,textarea,select{outline:none}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,var(--border))!important}
kbd{font:600 11px/1 var(--font);color:var(--text-3);background:var(--surface);border:1px solid var(--border);border-bottom-color:var(--border-strong);padding:4px 6px;border-radius:6px;white-space:nowrap}
code{font-family:"SFMono-Regular",Consolas,monospace;font-size:.92em;background:var(--surface);padding:2px 5px;border-radius:5px}
svg{display:block;flex:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:10px;left:10px;z-index:9999;background:var(--text);color:var(--canvas);padding:8px 12px;border-radius:8px;transform:translateY(-160%);transition:.15s ease}
.skip-link:focus{transform:none}

.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);height:100vh;background:var(--bg)}
.workspace-frame{min-width:0;display:grid;grid-template-rows:var(--topbar) minmax(0,1fr);background:var(--canvas);border-left:1px solid var(--border)}
.workspace-body{min-width:0;min-height:0;overflow:hidden;background:var(--canvas)}

