/* ======================================================================
   Reset & Basis
   ====================================================================== */
*, *::before, *::after {
    box-sizing: border-box;
}

body{
    margin:0;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 1rem;          /* 16px = 1rem */
    line-height:1.6;
    background:#d3d3d3;
    color:#333;
}

a{
    color:#0066cc;
    text-decoration:none;
}
a:hover{
    text-decoration:underline;
}

/* ======================================================================
   Layout
   ====================================================================== */
.wrapper{
    display:flex;
    flex-direction:column;
    min-height:100vh;
}

.marker {
    stroke:#333;
    stroke-width:2;
}

header, footer{
    background:#87cefa;
    color:white;
    text-align:center;
    padding:1rem;
}
main{
    flex:1;                     /* Main nimmt den Rest der Höhe ein */
    display:flex;               /* Flexbox aktivieren */
    flex-direction:row;         /* Elemente nebeneinander */
    gap:1rem;                   /* Abstand zwischen Sidebar & Content */
}
nav.sidebar{
    width:250px;
    flex-shrink:0;
    background:#f5f5f5;
    padding:1.2rem;
}
article.content{
    flex:1 1 auto;
    padding:1.8rem;
    min-width:280px;          /* verhindert zu schmale Inhalte */
}

/* ======================================================================
   Navigation – moderne Rahmen
   ====================================================================== */
nav ul{
    list-style:none;
    padding:0;
    margin:0;
}
nav li{
    margin-bottom:.9rem;
    position:relative;        /* für den Rahmen */
}
nav a{
    display:block;
    padding:.8rem 1.2rem;
    border-radius:6px;
    background:#fff;
    color:#333;
    box-shadow:0 2px 4px rgba(0,0,0,.05);
    transition:transform .15s ease,box-shadow .15s ease;
}
nav a:hover{
    transform:translateY(-3px);
    box-shadow:0 6px 12px rgba(0,0,0,.1);
}

/* ======================================================================
   Bilder
   ====================================================================== */
header img,
article.content img{
    max-width:100%;
    height:auto;
}

h1,h2,h3{
    margin-top:0;
}

/* ======================================================================
   Responsive
   ====================================================================== */
@media (max-width:768px){
    main{
        flex-direction:column;
    }
    nav.sidebar{
        width:100%;
        order:-1;                /* Sidebar oben auf mobilen Geräten */
    }
    article.content{
        padding:1.4rem;
    }
}

@media (max-width:480px){
    body{
        font-size:.9rem;
    }
    header, footer{
        padding:.8rem;
    }
    nav a{
        padding:.6rem 1rem;
    }
}


#compass .circle { fill:none; stroke:#bbb; stroke-width:2; }
#line { stroke:#e74c3c; stroke-width:4; }   /* aktuelle Richtung */
.line { stroke:#e74c3c; stroke-width:4; }
.ticks line, #ticks line { stroke:#777; stroke-width:1.5; }
.value { font-size:16px;font-weight:bold;text-anchor:start;}
.label  { font-size:13px;text-anchor:middle;}

.angle {
    font-size: 16px;
    font-weight: bold;
    text-anchor: middle;      /* zentriert */
}
.current { fill:#e74c3c; }   /* rot für aktuelle Richtung */
.static  { fill:#777;     }  /* grau für feste Werte */
