@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css');

:root {
    --cols: 10;
    --rows: 6;
    --shapeWidth: 200px;
    --shapeHeight: 230px;
    --bgcolor: #2785f5;
    --nav-height: 5.2rem;
    --sidebar-width: 4.8rem;
    --sidebar-expanded-width: 22rem;
    --font: 'Pretendard Variable', Pretendard, 'Noto Sans KR', 'Malgun Gothic', sans-serif;
    --ctrl-h: 3.4rem;
    --radius-xs: 3px;
    --radius-sm: 3px;
    --radius-md: 4px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: var(--font);
}

a, button, input, select, textarea,
.panel, .tool-card, .service-card, .navigation-item, .menu-item, .btn {
    transition: background-color .12s ease, border-color .12s ease, color .12s ease;
}

html {
    font-size: 62.5%;
    scrollbar-gutter: stable;
}

body {
    font-family: var(--font);
    background: var(--canvas);
    min-height: 100vh;
    color: var(--text-primary);
    letter-spacing: -0.01em;
    font-size: 1.4rem;
    line-height: 1.5;
}

.body-wrapper{
    padding-top: var(--nav-height, 5.6rem);
    padding-left: var(--sidebar-width, 23rem);
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    overflow: hidden;
    background: var(--canvas);
}

::selection {
    color: #fff;
    background: var(--accent-blue);
}

.loader {
    position: fixed;
    top: 50vh;
    left: calc(50% + var(--sidebar-width, 23rem) / 2);
    transform: translate(-50%, -150%);
    background: var(--panel);
    border: 1px solid var(--panel-border);
    box-shadow: var(--panel-shadow);
    padding: 1.4rem 2.2rem;
    border-radius: var(--panel-radius);
    opacity: 0;
    transition: opacity 0.18s ease, transform 0.18s ease;
    z-index: 1000;
    pointer-events: none;
    display: flex;
    flex-direction: column;
    justify-content: start;
    align-items: center;
    cursor: default;
    color: var(--text-primary);
    font-size: 1.4rem;
    font-weight: 600;
}

.loader.show {
    transform: translate(-50%, -50%);
    opacity: 1;
}


    html:where([data-layout="mobile"]){
        --nav-height: 5.4rem;
    }
    :where(html[data-layout="mobile"]) body{
        padding: 0;
        font-size: 1.4rem;
    }
    :where(html[data-layout="mobile"]) .body-wrapper{
        padding-left: 0;
        padding-bottom: 0;
        padding-top: var(--nav-height, 5.6rem);
        justify-content: start;
    }
    :where(html[data-layout="mobile"]) .loader{
        left: 50%;
    }


@media screen and (max-width: 480px) {
    body {
        padding: 0;
        font-size: 1.3rem;
    }
}
