/* =========================================================
   CoworkBD Responsive CSS
   Based on current ZIP structure
   File: public/assets/css/responsive.css
========================================================= */

*,
*::before,
*::after{
    box-sizing:border-box;
}

html,
body{
    width:100%;
    max-width:100%;
    overflow-x:hidden;
}

img,
svg,
video,
canvas{
    max-width:100%;
    height:auto;
}

/* Common */
.table-wrap,
.table-responsive{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.table{
    min-width:720px;
}

/* =========================================================
   PUBLIC HEADER
========================================================= */

.public-mobile-head{
    display:contents;
}

.mobile-menu-toggle{
    display:none;
}

.public-mobile-menu{
    display:contents;
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px){

    .public-page,
    .service-page{
        padding:50px 18px;
    }

    .hero{
        padding:42px 24px;
    }

    .hero h1{
        font-size:34px;
        line-height:1.2;
    }

    .package-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .service-hero,
    .split{
        grid-template-columns:1fr;
        padding:30px;
    }

    .steps-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .service-menu{
        display:flex;
        overflow-x:auto;
        gap:14px;
        padding:14px 18px;
        scroll-snap-type:x mandatory;
    }

    .service-menu a{
        min-width:130px;
        scroll-snap-align:start;
        padding:8px 4px 12px;
    }

    .service-menu::-webkit-scrollbar{
        display:none;
    }
}

/* =========================================================
   APP / DASHBOARD MOBILE
========================================================= */

@media (max-width: 768px){

    body{
        font-size:15px;
    }

    /* Important: stop desktop sidebar grid */
    .app-shell{
        display:block !important;
        min-height:auto;
        width:100%;
    }

    .sidebar{
        position:relative !important;
        width:100% !important;
        height:auto !important;
        padding:18px 16px !important;
        border-radius:0 0 22px 22px;
    }

    .brand{
        margin-bottom:16px;
    }

    .brand strong{
        font-size:22px;
    }

    .sidebar nav{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:8px;
    }

    .sidebar nav a,
    .sidebar .menu-parent{
        width:100%;
        padding:11px 12px;
        font-size:14px;
        min-height:44px;
    }

    .sidebar .menu-group{
        margin-top:0;
    }

    .sidebar .submenu{
        padding-left:0;
        grid-column:1 / -1;
    }

    .sidebar .submenu a{
        font-size:13px;
        padding:10px 12px;
        background:rgba(255,255,255,.08);
        margin-top:6px;
    }

    .app-main{
        width:100%;
        padding:18px 14px 28px !important;
    }

    .topbar{
        padding:16px !important;
        border-radius:18px;
        display:flex;
        flex-direction:column;
        align-items:flex-start;
        gap:14px;
        margin-bottom:18px;
    }

    .topbar h2{
        font-size:22px;
    }

    .topbar p{
        font-size:14px;
    }

    .logout-btn{
        width:100%;
        text-align:center;
        padding:12px 16px;
    }

    .page-wrap h1{
        font-size:26px;
        margin-bottom:8px;
    }

    .dashboard-grid{
        grid-template-columns:1fr 1fr !important;
        gap:12px;
        width:100%;
    }

    .stat-card,
    .panel-card{
        padding:18px !important;
        border-radius:18px;
        width:100%;
        min-width:0;
    }

    .stat-card span{
        font-size:13px;
        word-break:normal;
    }

    .stat-card h3{
        font-size:24px !important;
        line-height:1.2;
        word-break:break-word;
    }

    .panel-head{
        flex-direction:column;
        align-items:flex-start;
    }

    .panel-head .primary-btn,
    .panel-head .small-btn{
        width:100%;
        text-align:center;
    }

    .subscription-card,
    .checkout-head,
    .checkout-summary{
        flex-direction:column;
    }

    .subscription-card{
        padding:20px;
        gap:18px;
    }

    .sub-right,
    .sub-right .primary-btn{
        width:100%;
    }

    .sub-right .primary-btn{
        display:block;
        text-align:center;
    }

    .form-grid,
    .payment-choice-grid{
        grid-template-columns:1fr !important;
    }

    .checkout-price{
        text-align:left;
    }

    input,
    select,
    textarea,
    button{
        font-size:16px;
    }

    .primary-btn,
    .small-btn,
    .action-btn,
    button{
        min-height:44px;
    }

    /* Public mobile header */
    .public-header{
        position:sticky;
        top:0;
        z-index:999;
    }

    .public-topbar{
        display:block;
        padding:14px 16px;
    }

    .public-mobile-head{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
    }

    .public-logo{
        font-size:26px;
        line-height:1;
    }

    .mobile-menu-toggle{
        display:inline-flex;
        width:44px;
        height:44px;
        border:1px solid #e6edf7;
        border-radius:12px;
        background:#fff;
        align-items:center;
        justify-content:center;
        cursor:pointer;
    }

    .public-mobile-menu{
        display:none;
        margin-top:14px;
        padding-top:14px;
        border-top:1px solid #edf1f6;
    }

    .public-mobile-menu.open{
        display:block;
    }

    .public-main-nav{
        display:grid;
        grid-template-columns:1fr;
        gap:8px;
    }

    .public-main-nav a{
        display:block;
        padding:12px 14px;
        background:#f7f8fc;
        border-radius:12px;
    }

    .public-actions{
        display:grid;
        grid-template-columns:1fr;
        gap:10px;
        margin-top:12px;
        width:100%;
    }

    .phone-link,
    .login-link,
    .signup-btn,
    .contact-btn{
        width:100%;
        justify-content:center;
        text-align:center;
    }

    .service-menu{
        border-top:1px solid #edf1f6;
        border-bottom:1px solid #edf1f6;
    }

    .service-menu a{
        font-size:13px;
        min-width:118px;
    }

    .public-footer-dark{
        margin-top:50px;
        padding:36px 18px 28px;
    }

    .footer-links{
        display:grid;
        grid-template-columns:1fr;
        gap:12px;
    }

    .footer-bottom{
        flex-direction:column;
        gap:10px;
        font-size:13px;
    }
}

/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 576px){

    .public-page,
    .service-page{
        padding:34px 14px;
    }

    .hero{
        padding:32px 18px;
        border-radius:20px;
    }

    .hero h1{
        font-size:28px;
    }

    .package-grid,
    .steps-grid{
        grid-template-columns:1fr !important;
    }

    .service-hero,
    .split{
        padding:22px;
        border-radius:20px;
    }

    .service-hero h1{
        font-size:28px;
    }

    .service-section h2{
        font-size:24px;
    }

    .dashboard-grid{
        grid-template-columns:1fr !important;
    }

    .sidebar nav{
        grid-template-columns:1fr;
    }

    .stat-card h3{
        font-size:26px !important;
    }

    .table{
        min-width:650px;
    }
}

/* =========================================================
   EXTRA SMALL
========================================================= */

@media (max-width: 400px){

    .app-main{
        padding:14px 10px 24px !important;
    }

    .sidebar{
        padding:16px 12px !important;
    }

    .topbar,
    .stat-card,
    .panel-card{
        padding:14px !important;
    }

    .page-wrap h1{
        font-size:24px;
    }

    .hero h1,
    .service-hero h1{
        font-size:25px;
    }
}

.mobile-sidebar-toggle{
    display:none;
}

@media (max-width:768px){

    .sidebar{
        padding:14px !important;
    }

    .sidebar .brand{
        display:none !important;
    }

    .mobile-sidebar-toggle{
        display:flex;
        width:100%;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        border:0;
        background:#0f6662;
        color:#fff;
        padding:14px 16px;
        border-radius:16px;
        cursor:pointer;
        text-align:left;
    }

    .mobile-sidebar-toggle strong{
        display:block;
        font-size:18px;
        line-height:1.2;
    }

    .mobile-sidebar-toggle small{
        display:block;
        font-size:12px;
        opacity:.9;
        margin-top:4px;
    }

    .sidebar-nav{
        display:none !important;
        margin-top:12px;
    }

    .sidebar.mobile-open .sidebar-nav{
        display:grid !important;
        grid-template-columns:1fr;
        gap:8px;
    }

    .sidebar.mobile-open{
        border-radius:18px;
    }

    .sidebar-nav a,
    .sidebar-nav .menu-parent{
        width:100%;
        min-height:44px;
        border-radius:12px;
    }

    .submenu{
        display:none;
    }

    .submenu.open{
        display:block;
    }
}

@media (min-width:769px){

    .app-shell{
        display:block !important;
        padding-left:280px;
    }

    .sidebar{
        position:fixed !important;
        left:0;
        top:0;
        width:280px;
        height:100vh;
        max-height:100vh;
        overflow:hidden;
        z-index:50;
        padding-bottom:95px !important;
    }

    .app-main{
        width:100%;
        min-height:100vh;
    }

    .sidebar-nav{
        max-height:calc(100vh - 170px);
        overflow-y:auto;
        padding-bottom:15px;
    }

    .sidebar .sidebar-bottom{
        position:absolute;
        left:24px;
        right:24px;
        bottom:24px;
        margin:0;
        padding:0;
    }

    .sidebar .sidebar-logout-btn{
        width:100%;
        min-height:48px;
        display:flex;
        align-items:center;
        justify-content:center;
        border-radius:14px;
        background:#fff;
        color:#0f6662;
        font-weight:700;
        text-decoration:none;
    }
}

/* Mobile table horizontal scroll */
@media (max-width:768px){

    .panel-card{
        overflow:hidden;
    }

    .table-responsive{
        width:100%;
        overflow-x:auto;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
        border-radius:14px;
    }

    .table-responsive table{
        min-width:1100px;
        width:max-content;
    }

    .table-responsive::-webkit-scrollbar{
        height:6px;
    }

    .table-responsive::-webkit-scrollbar-thumb{
        background:#cfd8e3;
        border-radius:20px;
    }
}

/* =========================================================
   FINAL PUBLIC MOBILE HEADER
========================================================= */

@media (max-width:768px){

    .public-header{
        position:sticky;
        top:0;
        z-index:999;
        background:rgba(255,255,255,.96);
        backdrop-filter:blur(14px);
        border-bottom:1px solid #edf1f6;
    }

    .public-topbar{
        display:block !important;
        padding:14px 14px 10px !important;
    }

    .public-mobile-head{
        display:flex !important;
        align-items:center;
        justify-content:space-between;
        gap:12px;
    }

    .public-logo{
        display:flex;
        flex-direction:column;
        gap:3px;
        text-decoration:none;
        line-height:1.1;
    }

    .public-logo strong{
        font-size:23px;
        font-weight:700;
        color:#0f6662;
    }

    .mobile-menu-toggle{
        display:inline-flex !important;
        width:42px;
        height:42px;
        border:1px solid #e6edf7;
        border-radius:14px;
        background:#fff;
        align-items:center;
        justify-content:center;
        box-shadow:0 8px 22px rgba(15,102,98,.08);
    }

    .mobile-menu-toggle .material-symbols-outlined{
        font-size:25px;
        color:#0f6662;
    }

    .public-mobile-menu{
        display:none !important;
        margin-top:12px;
        padding-top:12px;
        border-top:1px solid #edf1f6;
    }

    .public-mobile-menu.open{
        display:block !important;
    }

    .public-main-nav{
        display:grid !important;
        grid-template-columns:1fr;
        gap:6px;
        padding:0;
        margin:0;
    }

    .public-main-nav a{
        display:flex;
        align-items:center;
        min-height:42px;
        padding:10px 12px;
        border-radius:12px;
        background:#f7f9fc;
        color:#0f234f;
        font-size:14px;
        font-weight:600;
        text-decoration:none;
    }

    .public-actions{
        display:grid !important;
        grid-template-columns:1fr;
        gap:8px;
        margin-top:10px;
        width:100%;
    }

    .phone-link,
    .login-link,
    .signup-btn{
        width:100%;
        min-height:42px;
        border-radius:12px;
        display:flex;
        align-items:center;
        justify-content:center;
        gap:8px;
        font-size:14px;
        font-weight:600;
        text-decoration:none;
    }

    .phone-link{
        background:#ecfdf5 !important;
        color:#0f9f6e !important;
        padding:10px 12px !important;
    }

    .login-link{
        background:#f7f9fc;
        color:#0f234f;
    }

    .signup-btn{
        background:#0f6662 !important;
        color:#fff !important;
        box-shadow:0 10px 22px rgba(15,102,98,.16);
    }

    .service-menu{
        max-width:100%;
        display:flex !important;
        overflow-x:auto;
        gap:8px;
        padding:10px 14px 12px !important;
        border-top:1px solid #edf1f6;
        border-bottom:1px solid #edf1f6;
        scroll-snap-type:x mandatory;
    }

    .service-menu a{
        min-width:max-content;
        padding:9px 12px;
        border-radius:10px;
        background:#f7f9fc;
        display:flex;
        align-items:center;
        gap:6px;
        color:#0f234f;
        font-size:12px;
        font-weight:600;
        text-decoration:none;
        white-space:nowrap;
        scroll-snap-align:start;
    }

    .service-menu .material-symbols-outlined{
        font-size:17px !important;
        margin:0 !important;
        color:#0f6662;
    }

    .service-menu::before,
    .service-menu::after{
        display:none !important;
        content:none !important;
    }

    .service-menu::-webkit-scrollbar{
        display:none;
    }
}

@media (max-width:768px){
    .admin-page .settings-box{
        padding:18px;
        border-radius:18px;
    }

    .admin-page table.table{
        min-width:1100px;
    }

    .admin-page .panel-head{
        flex-direction:column;
        align-items:flex-start;
        gap:14px;
    }

    .admin-page .panel-head .primary-btn{
        width:100%;
        justify-content:center;
    }
}

@media (max-width:768px){

    .public-mobile-head a{
        font-size:32px;
    }
}

@media (max-width:768px){

    .public-nav-dropdown{
        width:100%;
    }

    .public-nav-parent{
        width:100%;
        justify-content:space-between;
    }

    .public-dropdown-menu{
        position:static;
        width:100%;
        transform:none;
        box-shadow:none;
        border:1px solid #edf1f6;
        border-radius:14px;
        padding:12px;
        margin-top:8px;
        display:none;
        grid-template-columns:1fr;
        opacity:1;
        visibility:visible;
        pointer-events:auto;
    }

    .public-nav-dropdown:hover .public-dropdown-menu{
        transform:none;
        display:grid;
    }

    .public-dropdown-group{
        border-bottom:1px solid #edf1f6;
        padding-bottom:10px;
    }

    .public-dropdown-group:last-child{
        border-bottom:0;
        padding-bottom:0;
    }
}

@media (max-width: 768px){

    .location-section{
        padding:40px 16px;
    }

    .location-section .container{
        width:100%;
        max-width:100%;
        padding:0;
    }

    .location-grid{
        display:grid;
        grid-template-columns:1fr !important;
        gap:20px;
    }

    .location-card,
    .map-box{
        width:100%;
        max-width:100%;
    }

    .map-box.map-embed-box{
        padding:0 !important;
        overflow:hidden;
        border-radius:18px;
    }

    .map-box.map-embed-box iframe{
        width:100% !important;
        display:block;
        border:0;
    }
}

@media (max-width: 480px){

    .location-section{
        padding:32px 14px;
    }

    .location-section h2{
        font-size:26px;
        line-height:1.25;
    }

    .location-section p{
        font-size:14px;
        line-height:1.6;
    }

    .location-card{
        padding:20px;
        border-radius:18px;
    }
}


/* Add-on pages mobile responsive */
@media (max-width: 768px){

    .addon-usage-card,
    .addon-admin-page{
        padding:20px 16px;
        border-radius:18px;
    }

    .addon-usage-form .form-grid,
    .addon-create-form .form-grid{
        grid-template-columns:1fr !important;
        gap:14px;
    }

    .addon-usage-form select,
    .addon-usage-form input,
    .addon-create-form input{
        min-height:48px;
        font-size:14px;
    }

    .addon-table-wrap{
        width:100%;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .addon-table{
        min-width:760px;
    }

    .addon-actions{
        flex-direction:column;
        align-items:stretch;
        gap:8px;
    }

    .addon-actions button{
        width:100%;
    }
}

@media (max-width: 480px){

    .addon-usage-card,
    .addon-admin-page{
        padding:18px 14px;
    }

    .addon-usage-card .panel-head h3,
    .addon-admin-page .panel-head h3{
        font-size:20px;
    }

    .addon-usage-card .panel-head p,
    .addon-admin-page .panel-head p{
        font-size:13px;
        line-height:1.5;
    }

    .addon-usage-form select,
    .addon-usage-form input,
    .addon-create-form input{
        border-radius:12px;
        padding:12px 14px;
    }

    .addon-table{
        min-width:700px;
    }
}

@media(max-width:768px){
    .staff-table{
        min-width:850px;
    }

    .staff-qr-actions{
        flex-direction:column;
    }

    .staff-qr-actions a{
        width:100%;
    }
}

@media (max-width: 900px){
    .cowork-location-grid{
        grid-template-columns:1fr;
    }

    .location-photo{
        height:260px;
    }
}

@media (max-width: 576px){
    .location-content{
        padding:22px;
    }

    .location-content h3{
        font-size:22px;
    }

    .location-actions{
        flex-direction:column;
    }

    .location-actions a{
        width:100%;
        justify-content:center;
        text-align:center;
    }

    .location-map-card iframe{
        height:320px;
    }
}


@media(max-width:1100px){
    .admin-kpi-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:700px){
    .admin-kpi-grid,
    .admin-report-grid{
        grid-template-columns:1fr;
    }
}