    :root{--brand:#0078d4;--muted:#666;--bg:#fafafa}
    :root{--brand:#0078d4;--free:#c8f7d4;--busy:#ffd6d6;--muted:#666;--maybe:#fff4c8}

    *{box-sizing:border-box}
    body{font-family: Arial, Helvetica, sans-serif, system-ui,-apple-system,"Segoe UI",Roboto;margin:0;background:#f6f8fb;color:#111}
     /* Fluid container: fills available width but caps at max-width for large screens
         Use calc() so on small viewports the container fills available space minus padding.
         box-sizing:border-box ensures padding doesn't increase element width. */

    /* Reset viewport-related styles */
    html, body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
        margin: 0;
        padding: 8px;
    } 

    /* Alapvető container beállítások */
    .container {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
     table>tr>td{border-collapse:collapse;width:100%;background-color: f6f8fb;}
    /* Navbar - Mobile first */
    nav.topnav {
        margin: 0;
        background: linear-gradient(180deg,#ffffffcc,#f7f9fc);
        border-bottom: 1px solid #e6e9ee;
        font-size: 0.9rem;
        width: 100%;
    }
    .topnav .container {
        padding: 8px;
    }
    .topnav .brand {
        display: block;
        text-align: center;
        font-weight: 700;
        color: var(--brand);
        text-decoration: none;
        font-size: 1.1rem;
        padding: 8px 0;
    }
    .topnav ul {
        list-style: none;
        margin: 0;
        padding: 0;
        display: flex;
        flex-direction: column;
        width: 100%;
    }
    .topnav li {
        width: 100%;
    }
    .topnav a {
        display: block;
        width: 100%;
        padding: 10px;
        color: var(--muted);
        text-decoration: none;
        text-align: center;
        border-radius: 4px;
        font-weight: 600;
    }
    .topnav a:hover {
        background: rgba(0,0,0,0.03);
        color: #000;
    }
    .topnav a.active {
        background: var(--brand);
        color: #fff;
    }

    /* Desktop navigation */
    @media screen and (min-width: 768px) {
        .topnav .container {
            display: flex;
            flex-direction: row;
            justify-content: space-between;
            align-items: center;
            padding: 8px 20px;
        }
        .topnav .brand {
            padding: 0;
        }
        .topnav ul {
            flex-direction: row;
            width: auto;
            gap: 10px;
        }
        .topnav li {
            width: auto;
        }
        .topnav a {
            width: auto;
            padding: 8px 12px;
        }
    }

    header { margin-bottom: 1.5rem; }
    h1 { color: #0b66c3; }
    .card { border: 1px solid #e3e7ee; padding: 1.2rem; border-radius: 8px; background: #fff;  }
    ul.rules { margin-left: 1.2rem; line-height: 1.4rem;}
    .actions { margin-top: 1.2rem; }
    a.btn { display: inline-block; padding: .6rem 1rem; background:#0b66c3; color:#fff; text-decoration:none; border-radius:4px; }
    footer { margin-top:2rem; font-size:.9rem; color:#666; }


        td.free{background:var(--free)}
    td.busy{background:var(--busy)}
    td.maybe{background:var(--maybe)}



    main{padding:20px}
		form{max-width:720px;background:var(--bg);padding:18px;border:1px solid #ddd;border-radius:6px;margin:16px 0}
		label{display:block;margin-top:12px;font-weight:600}
		input,select{width:100%;padding:8px;margin-top:6px;border:1px solid #ccc;border-radius:4px}
		.error{color:#b00020;font-size:0.9em;margin-top:6px}
		.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
		.full{grid-column:1/-1}
		button{margin-top:14px;padding:10px 16px;border:0;background:var(--brand);color:#fff;border-radius:6px;cursor:pointer}
		button[disabled]{opacity:0.6;cursor:not-allowed}
		.success{background:#e6ffed;border:1px solid #7ee0a3;padding:10px;margin-bottom:12px}
		@media(max-width:720px){
            .row{grid-template-columns:1fr}
        }


        .controls{display:flex;gap:12px;align-items:center;margin:12px 0}
    .week-select{padding:6px 8px;border-radius:6px;border:1px solid #ddd}

    .grid {
        width: 95vw;
        margin-left: calc(-47vw + 50%);
        margin-right: calc(-50vw + 50%);
        position: relative;
        left: 50%;
        right: 50%;
        transform: translateX(-50%);
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        background: #fff;
        border: none;
        padding: 0 10px;
    }

    table {
        width: 100%;
        border-collapse: collapse;
        font-size: 13px;
        margin: 0 auto;
    }

    th, td {
        padding: 8px 4px;
        text-align: center;
        border: 1px solid #eef2f6;
        font-size: 12px;
    }

    /* Fix table header */
    thead {
        background: #f8f9fa;
    }

    /* Optimize table for mobile */
    @media screen and (max-width: 800px) {
        .grid {
            padding: 0 5px;
        }

        table {
            font-size: 11px;
        }

        th, td {
            padding: 4px 2px;
            font-size: 11px;
        }
    }
    th.umogi{cursor:pointer;background:#f2f6fb;font-weight:700}
    th.umogi:hover{background:#e8f0fb}
    td.hour{width:60px}

    /* Zebra striping for table rows (applied globally) */
    tbody tr:nth-child(odd) { background-color: #ffffff; }
    tbody tr:nth-child(even) { background-color: #fbfbfb; }
    tbody tr:hover { background-color: #f1f7ff; }

    .cell{max-width:100%;height:24px;border-radius:4px;cursor:pointer;transition:background 0.2s;white-space:normal;word-break:break-word}

    .day-row th{background:#fafafa;color:var(--muted);font-weight:600;text-align:left;padding-left:10px}

    /* Rule list explicit odd/even classes */
    .rule-item.odd { background: transparent; display: block; padding: 6px 8px; border-radius: 4px; }
    .rule-item.even { background: rgba(11,102,195,0.03); display: block; padding: 6px 8px; border-radius: 4px; }
    .rule-item.odd + .rule-item.even { margin-top: 2px; }

        /* Mobile-first design */
        @media screen and (max-width: 800px) {
            body {
                margin: 0;
                padding: 0;
                width: 100vw;
                overflow-x: hidden;
            }

            main {
                padding: 10px 5px;
            }

            /* Navigation */
            .topnav {
                width: 100%;
            }

            .topnav .container {
                padding: 8px 5px;
            }

            .topnav ul {
                flex-wrap: wrap;
                gap: 4px;
                justify-content: flex-start;
            }

            .topnav a {
                padding: 6px 8px;
                font-size: 13px;
            }

            /* Content layout */
            .card {
                margin: 10px 0;
                padding: 10px;
                border-radius: 4px;
            }

            /* Table adjustments */
            .grid {
                margin: 10px -5px;
            }

            table {
                min-width: auto;
                width: 100%;
            }

            /* Button and form adjustments */
            .btn, button {
                padding: 8px 12px;
                font-size: 14px;
                white-space: nowrap;
            }

            form {
                padding: 10px;
                margin: 10px 0;
                width: 100%;
            }

            /* Typography */
            h1 {
                font-size: 1.5rem;
                margin: 10px 0;
            }
        }