@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
:root {
    --primary: #f3f1eb;
}
body {
    font-family: sans-serif;
    background-color: var(--primary);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    margin: 0;
}
.page-content{
    flex: 1;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.missions-map{
    text-align: center;
}
.banner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px;
    width: 100%;
    box-sizing: border-box;
}
.missions {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 20px;
}
.mission {
    display: grid;
    grid-template-columns: 400px minmax(0, 1fr);
    width: min(1100px, 100%);
    align-items: start;
}
.mission-title{
    margin: 0;
}
.map-node{
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 1rem;
}
.node-circle{
    border: 1px solid black;
    border-radius: 50%;
    width: 100px;
    height: 100px;
    align-items: center;
    justify-content: center;
    text-align: center;
    display: flex;
    transition-duration: 0.2s;
    background-color: white;
}
.node-circle:hover{
    cursor: pointer;
    transform: scale(1.1);
    transition-duration: 0.2s;
}
.node-label{
    text-align: center;
    max-width: 100px;
}
.node-sub{
    color: grey;
}
.map-connector{
    min-width: 60px;
    margin-top: 50px;
    border-top: 3px solid black;
}
.map-connector.dashed{
    border-top: 3px dashed black;
}
.mission-pane-left{
    display: flex;
    flex-direction: column;
    padding: 20px;
    background-color: white;
    border-radius: 10px;
    border: 1px solid lightgrey;
}
.mission-pane-right{
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 20px;
    min-width: 0;
    margin-left: 10px;
}
.panel{
    background-color: white;
    border: 1px solid lightgrey;
    border-radius: 10px;
    width: 100%;
    box-sizing: border-box;
}
.panel-body{
    padding: 0 10px 10px;
}
.section-label{
    color: grey;
    font-size:  small;
}
.obj-list{
    margin: 0;
    padding: 0;
}
.hint-box{
    margin-top: 10px;
    background-color: var(--primary);
    padding: 10px;
    border-radius: 10px;
    border-left: 2px solid lightgrey;
}
.example-box{
    background-color: var(--primary);
    padding: 20px;
    border-radius: 10px;
    border-left: 2px solid lightgrey;
    font-family: monospace;
}
.divider {
    height: 1px;
    margin: 10px 0;
    background-color: lightgrey;
}
.panel-label{
    padding: 10px 10px 0;
}
.block-pool{
    padding: 10px;
    display: flex;
    flex-direction: column;
    width: 100%;
    box-sizing: border-box;
    gap: 10px;
    font-family: monospace;
}
.code-block{
    padding: 10px;
    border-radius: 10px;
    cursor: grab;
}
.code-block:active {
    cursor: grabbing;
}
.code-block.orange{
    background: #FAEEDA;
    border: 1px solid #EF9F27;
}
.code-block.purple{
    background: #e7dafa;
    border: 1px solid #4227ef;
}
.code-block.blue{
    background: #daf5fa;
    border: 1px solid #27caef;
}
.code-block.green{
    background: #ddfada;
    border: 1px solid #32da15;
}
.drop-zone{
    min-height: 150px;
    padding: 10px;
    border-radius: 10px;
    border: 2px dashed lightgrey;
    gap: 10px;
    display: flex;
    flex-direction: column;
    transition-duration: 0.2s;
}
.drop-zone:hover{
    border-color: grey;
    transition-duration: 0.2s;
}
.drop-hint{
    text-align: center;
    color: lightgrey;
    font-size: small;
}
.btn{
    padding: 10px;
    border-radius: 10px;
    cursor: pointer;
    border: 0px solid black;
    transition-duration: 0.2s;
}
.btn.primary{
    color: white;
    background-color: green;
}
.btn:hover{
    filter: brightness(1.1);
    transition-duration: 0.2s;
}
.code-row{
    display: flex;
    align-items: center;
    gap: 10px;
}
.line-num{
    width: 20px;
    color: grey;
    font-family: monospace;
}
.code-row .code-block{
    flex: 1;
}
.code-box{
    flex: 1;
    padding: 10px;
    border-radius: 10px;
    border: 1px solid grey;
    font-family: monospace;
    box-sizing: border-box;
    width: 100%;
}
.code-box.input{
    min-height: 10rem;
}
.code-box.output{
    min-height: 5rem;
}
.code-editor{
}
.btn-row{
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}
