/* App layout and base UI styles. */

html,
body,
#root{
    margin:0;
    padding:0;
    width:100%;
    height:100%;
    overflow:hidden;
    background:var(--bg);
    color:var(--text);
    font-family:var(--font);
    user-select:none;
    -webkit-user-select:none;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

*{
    box-sizing:border-box;
    -webkit-tap-highlight-color:transparent;
}

#root{
    position:relative;
}

body{
    overflow:hidden;
}

.page{
    position:fixed;
    inset:0;
    display:flex;
    flex-direction:column;
    width:100%;
    min-height:100%;
    height:100%;
    background:var(--bg);
    overflow:hidden;
    padding-bottom:50px;
}

.page-transition-enter{
    opacity:0;
    transform:translateX(30px);
}

.page-transition-enter-active{
    opacity:1;
    transform:translateX(0);
    transition:opacity 220ms ease, transform 220ms ease;
}

.page-transition-exit{
    opacity:1;
    transform:translateX(0);
}

.page-transition-exit-active{
    opacity:0;
    transform:translateX(-30px);
    transition:opacity 220ms ease, transform 220ms ease;
}

.page-enter{
    animation:pageSlideIn 220ms ease forwards;
}

@keyframes pageSlideIn{
    from{
        opacity:0;
        transform:translateX(30px);
    }
    to{
        opacity:1;
        transform:translateX(0);
    }
}

.page-content{
    flex:1;
    overflow-y:auto;
    overflow-x:hidden;
    padding:5px;
    -webkit-overflow-scrolling:touch;
}

.app-page{
    position:absolute;
    inset:0;
    overflow:hidden;
    padding:16px;
    background:var(--bg);
}

.bottom-menu{
    position:fixed;
    left:30px;
    right:30px;
    bottom:0;
    display:flex;
    flex-direction:row;
    justify-content:space-around;
    align-items:center;
    background:var(--menu-bg);
    border-top:1px solid var(--menu-border);
    border-radius:15px 15px 0 0;
    backdrop-filter:blur(2px);
    z-index:99999;
    padding-bottom:env(safe-area-inset-bottom);
    box-shadow:0 -2px 12px var(--shadow);
}

.bottom-menu-item{
    flex:1;
    padding:5px;
    border:none;
    background:transparent;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    cursor:pointer;
    color:var(--text3);
    font-size:11px;
    transition:.2s;
}

.bottom-menu-item.active{
    color:var(--primary);
}

.bottom-menu-item:active{
    background:var(--pressed-bg);
}

.bottom-menu-icon{
    font-size:24px;
    line-height:24px;
    margin-bottom:4px;
}

.bottom-menu-text{
    font-size:11px;
    font-weight:600;
}

button{
    font:inherit;
    border:none;
    outline:none;
    cursor:pointer;
    font-family:inherit;
}

h3{
    font-weight:700;
}

.btn{
    margin:4px;
    padding:6px;
    height:30px;
    max-width:9em;
    border:none;
    border-radius:var(--radius);
    background:var(--primary);
    color:var(--surface);
    font-weight:600;
}

.btn:active{
    opacity:.85;
}

.btn:disabled{
    background:var(--disabled-bg);
    color:var(--disabled-text);
    cursor:default;
    opacity:1;
}

.offline-banner{
    margin:10px;
    padding:12px;
    border-radius:var(--radius);
    background:var(--warning-bg);
    color:var(--error-text);
    font-size:14px;
    text-align:center;
}

.ios-navbar{
    left:10px;
    right:10px;
    height:40px;
    background:var(--nav-bg-alpha);
    border-bottom:1px solid var(--divider);
    border-radius:0 0 15px 15px;
    backdrop-filter:blur(2px);
}
