*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto;
}

html, body{
    height:100%;
    width:100%;
    overflow:hidden; 
    background:#000;
    color:white;
}

.app{
    height:100dvh; 
    width:100%;
    display:flex;
    flex-direction:column;
}

/* SLIDER AREA */
.slider-container {
    flex: 6;
    width: 100%;
    overflow: hidden;
    position: relative;
    touch-action: pan-y; 
}

.slider-track {
    display: flex;
    width: 300%; 
    height: 100%;
    transition: transform 0.35s ease-in-out;
}

.display-grid{
    width: 33.3333%; 
    height: 100%;
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:1fr 1fr;
    gap:16px;
    padding:18px;
    padding-bottom: 30px; /* Leave space for dots */
}

.display-cell{
    background:#141414;
    border-radius:10px;
    padding:10px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    cursor:pointer;
    transition:.2s;
    user-select: none;
    -webkit-user-select: none;
}

.display-cell.active{
    outline:2px solid #ff8c1a;
}

.expression{
    font-size:1rem;
    opacity:.6;
    margin-bottom:6px;
    word-break:break-all;
}

.result{
    font-size:2rem;
    font-weight:600;
    text-align: right;
}

/* NAVIGATION DOTS */
.dots-container {
    position: absolute;
    bottom: 8px; 
    left: 0;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    z-index: 10;
}

.dot {
    width: 8px;
    height: 8px;
    background: #555;
    border-radius: 50%;
    transition: 0.3s ease-in-out;
    cursor: pointer;
}

.dot.active {
    background: #ff8c1a;
    width: 20px; 
    border-radius: 4px;
}

/* KEYPAD */
.calculator{
    flex:4;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    grid-template-rows:repeat(5,1fr);
    gap:4px;
    padding:18px;
}

/* KEYS */
.key{
    border:none;
    border-radius:16px;
    background:#2c2c2e;
    color:#fff;
    font-size:1.6rem;
    font-weight:500;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:.15s;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}

.key:active{
    transform:scale(.92);
}

.operator, .delete, .session, .clear{
    color:#ff8c1a;
}

.equal{
    background:#ff8c1a;
    color:white;
}

/* COPY TOAST */
.copy-toast {
    position: fixed;
    top: 20%;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(255, 140, 26, 0.95); 
    color: white;
    padding: 10px 20px;
    border-radius: 20px;
    font-size: 0.9rem;
    font-weight: 600;
    z-index: 1000;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.copy-toast.show {
    opacity: 1;
}

/* MOBILE */
@media(max-width:600px){
    .result{ font-size:1.6rem; }
    .key{ font-size:1.3rem; }
}
