/* =====================================================
   PATIENT ERP - BREAK OUT OF ASTRA CONTAINER
===================================================== */

/* When ERP is present, remove Astra content restrictions */
body:has(.pc-erp-wrapper) .site-content .ast-container,
body:has(.pc-erp-wrapper) .site-content .ast-container-fluid,
body:has(.pc-erp-wrapper) .entry-content,
body:has(.pc-erp-wrapper) .site-main,
body:has(.pc-erp-wrapper) .content-area {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Remove Astra page spacing */
body:has(.pc-erp-wrapper) .site-content {
    padding: 0 !important;
    margin: 0 !important;
}

body:has(.pc-erp-wrapper) .entry-content {
    margin: 0 !important;
}

/* =====================================================
   ERP FULL SCREEN
===================================================== */

.pc-erp-wrapper {
    position: relative !important;

    display: grid !important;

    grid-template-columns: 260px minmax(0, 1fr) !important;

    width: 100vw !important;
    max-width: 100vw !important;

    min-height: calc(100vh - 32px) !important;

    margin: 0 !important;
    padding: 0 !important;

    left: 0 !important;
    right: auto !important;

    transform: none !important;

    overflow: visible !important;

    background: #f5f7fb !important;
}


/* =====================================================
   SIDEBAR
===================================================== */

.pc-erp-wrapper .pc-sidebar {

    position: sticky !important;

    top: 32px !important;

    grid-column: 1 !important;

    width: 260px !important;
    min-width: 260px !important;

    height: calc(100vh - 32px) !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow-y: auto !important;
    overflow-x: hidden !important;

    background: #0f172a !important;

    z-index: 100 !important;
}


/* =====================================================
   MAIN
===================================================== */

.pc-erp-wrapper .pc-main {

    grid-column: 2 !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    min-height: calc(100vh - 32px) !important;

    margin: 0 !important;
    padding: 40px !important;

    position: relative !important;

    left: auto !important;
    right: auto !important;
    top: auto !important;

    overflow: visible !important;

    background: #f5f7fb !important;

    box-sizing: border-box !important;
}


/* =====================================================
   HEADINGS
===================================================== */

.pc-erp-wrapper .pc-main h1,
.pc-erp-wrapper .pc-main h2,
.pc-erp-wrapper .pc-main h3 {

    max-width: 100% !important;

    margin-left: 0 !important;
}


/* =====================================================
   HEADER
===================================================== */

.pc-erp-wrapper .pc-header {

    width: 100% !important;

    display: flex !important;

    align-items: center !important;

    justify-content: space-between !important;

    margin: 0 0 30px !important;

    padding: 0 !important;
}


/* =====================================================
   BOXES
===================================================== */

.pc-erp-wrapper .pc-box {

    width: 100% !important;

    max-width: none !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    padding: 25px !important;

    overflow-x: auto !important;

    background: #fff !important;

    border-radius: 14px !important;

    border: 1px solid #e5e7eb !important;

    box-sizing: border-box !important;
}


/* =====================================================
   BUTTONS
===================================================== */

.pc-erp-wrapper .pc-btn {

    display: inline-flex !important;

    align-items: center !important;

    justify-content: center !important;

    width: auto !important;

    min-width: auto !important;

    padding: 12px 20px !important;

    background: #2563eb !important;

    color: #fff !important;

    border-radius: 8px !important;

    text-decoration: none !important;
}


/* =====================================================
   TABLE
===================================================== */

.pc-erp-wrapper .pc-table {

    width: 100% !important;

    max-width: none !important;

    margin: 0 !important;

    border-collapse: collapse !important;
}


/* =====================================================
   DESKTOP
===================================================== */

@media (min-width: 769px) {

    body:has(.pc-erp-wrapper) #primary,
    body:has(.pc-erp-wrapper) #content,
    body:has(.pc-erp-wrapper) .site-main {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    body:has(.pc-erp-wrapper) .site-content .ast-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }

    .pc-erp-wrapper {

        display: block !important;

        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
    }

    .pc-erp-wrapper .pc-sidebar {
        display: none !important;
    }

    .pc-erp-wrapper .pc-main {

        width: 100% !important;

        min-height: 100vh !important;

        padding: 20px 15px !important;

        margin: 0 !important;
    }

    .pc-erp-wrapper .pc-header {

        display: block !important;

        margin-bottom: 20px !important;
    }

    .pc-erp-wrapper .pc-header h1 {

        font-size: 30px !important;
    }

    .pc-erp-wrapper .pc-box {

        padding: 18px !important;

        overflow-x: auto !important;
    }

    .pc-erp-wrapper .pc-table {

        min-width: 650px !important;
    }
}
/*
==========================================================
PATIENT CARE ERP
CLEAN LAYOUT V2
==========================================================
*/

/* =========================
   GLOBAL RESET
========================= */

*,
*::before,
*::after{
    box-sizing:border-box;
}

html,
body{
    margin:0 !important;
    padding:0 !important;
}

body{
    background:#f5f7fb;
    color:#334155;
    font-family:Arial, Helvetica, sans-serif;
}

a{
    text-decoration:none;
}


/* ========================================================
   ERP MAIN WRAPPER
   IMPORTANT:
   Break out of Astra/WordPress content width.
======================================================== */

.pc-erp-wrapper{
    display:grid !important;

    grid-template-columns:260px minmax(0,1fr) !important;

    width:100vw !important;
    max-width:none !important;

    min-height:100vh !important;

    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;

    padding:0 !important;

    position:relative !important;

    background:#f5f7fb !important;

    overflow:visible !important;
}


/* ========================================================
   SIDEBAR
======================================================== */

.pc-erp-wrapper .pc-sidebar{

    grid-column:1 !important;
    grid-row:1 !important;

    width:260px !important;
    min-width:260px !important;

    height:100vh !important;

    position:sticky !important;

    top:0 !important;
    left:auto !important;

    margin:0 !important;
    padding:0 !important;

    background:#0f172a !important;
    color:#fff !important;

    overflow-y:auto !important;
    overflow-x:hidden !important;

    z-index:10 !important;

    box-shadow:4px 0 20px rgba(15,23,42,.08) !important;
}


/* Logo */

.pc-erp-wrapper .pc-logo{

    width:100% !important;

    height:75px !important;

    display:flex !important;
    align-items:center !important;

    padding:0 25px !important;
    margin:0 !important;

    background:#0f172a !important;

    color:#fff !important;

    font-size:23px !important;
    font-weight:700 !important;

    border-bottom:1px solid rgba(255,255,255,.08) !important;
}


/* Sidebar UL */

.pc-erp-wrapper .pc-sidebar ul{

    list-style:none !important;

    width:100% !important;

    margin:0 !important;
    padding:15px 0 !important;
}


/* Sidebar LI */

.pc-erp-wrapper .pc-sidebar li{

    width:100% !important;

    margin:0 !important;
    padding:0 !important;

    list-style:none !important;

    border-bottom:1px solid rgba(255,255,255,.06) !important;
}


/* Sidebar links */

.pc-erp-wrapper .pc-sidebar a{

    display:flex !important;

    align-items:center !important;

    width:100% !important;
    min-height:56px !important;

    margin:0 !important;
    padding:0 25px !important;

    color:#fff !important;

    background:transparent !important;

    font-size:16px !important;
    font-weight:500 !important;

    line-height:1.2 !important;

    border:0 !important;
    border-radius:0 !important;

    transition:background .2s ease !important;
}


.pc-erp-wrapper .pc-sidebar a:hover{

    background:#2563eb !important;
    color:#fff !important;
}


.pc-erp-wrapper .pc-sidebar .active a{

    background:#2563eb !important;
    color:#fff !important;
}


/* ========================================================
   MAIN CONTENT
   NO margin-left
   NO fixed positioning
======================================================== */

.pc-erp-wrapper .pc-main{

    grid-column:2 !important;
    grid-row:1 !important;

    width:auto !important;
    max-width:none !important;
    min-width:0 !important;

    min-height:100vh !important;

    display:block !important;

    position:relative !important;

    margin:0 !important;
    padding:40px !important;

    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;

    float:none !important;

    background:#f5f7fb !important;

    overflow:visible !important;
}


/* ========================================================
   HEADER
======================================================== */

.pc-erp-wrapper .pc-header{

    width:100% !important;

    display:flex !important;

    align-items:center !important;
    justify-content:space-between !important;

    gap:25px !important;

    margin:0 0 30px !important;
    padding:0 !important;

    position:relative !important;
}


.pc-erp-wrapper .pc-header > div{

    margin:0 !important;
    padding:0 !important;

    min-width:0 !important;
}


.pc-erp-wrapper .pc-header h1{

    display:block !important;

    margin:0 !important;
    padding:0 !important;

    position:static !important;

    color:#0f172a !important;

    font-size:36px !important;
    font-weight:700 !important;

    line-height:1.2 !important;
}


.pc-erp-wrapper .pc-header p{

    margin:8px 0 0 !important;
    padding:0 !important;

    color:#64748b !important;

    font-size:15px !important;
}


/* ========================================================
   BUTTON
======================================================== */

.pc-erp-wrapper .pc-btn,
.pc-erp-wrapper a.pc-btn{

    display:inline-flex !important;

    align-items:center !important;
    justify-content:center !important;

    min-height:44px !important;

    padding:11px 20px !important;

    margin:0 !important;

    background:#2563eb !important;

    color:#fff !important;

    border:0 !important;
    border-radius:9px !important;

    font-size:15px !important;
    font-weight:600 !important;

    line-height:1 !important;

    cursor:pointer !important;

    box-shadow:none !important;

    transition:.2s ease !important;
}


.pc-erp-wrapper .pc-btn:hover,
.pc-erp-wrapper a.pc-btn:hover{

    background:#1d4ed8 !important;
    color:#fff !important;

    transform:translateY(-1px);
}


/* ========================================================
   CARDS
======================================================== */

.pc-erp-wrapper .pc-cards{

    width:100% !important;

    display:grid !important;

    grid-template-columns:repeat(4,minmax(0,1fr)) !important;

    gap:20px !important;

    margin:0 0 30px !important;
    padding:0 !important;
}


.pc-erp-wrapper .pc-card{

    width:100% !important;

    min-width:0 !important;

    background:#fff !important;

    border:1px solid #e7ebf1 !important;

    border-radius:14px !important;

    padding:24px !important;

    margin:0 !important;

    box-shadow:0 5px 20px rgba(15,23,42,.05) !important;
}


.pc-erp-wrapper .pc-card span{

    display:block !important;

    margin:0 0 10px !important;

    color:#64748b !important;

    font-size:14px !important;
}


.pc-erp-wrapper .pc-card h2{

    margin:0 !important;
    padding:0 !important;

    color:#2563eb !important;

    font-size:30px !important;
}


/* ========================================================
   BOX / CONTENT PANEL
======================================================== */

.pc-erp-wrapper .pc-box{

    display:block !important;

    width:100% !important;
    max-width:none !important;

    margin:0 0 25px !important;
    padding:25px !important;

    background:#fff !important;

    border:1px solid #e7ebf1 !important;

    border-radius:14px !important;

    box-shadow:0 5px 20px rgba(15,23,42,.05) !important;

    overflow:visible !important;
}


.pc-erp-wrapper .pc-box h2{

    margin:0 0 20px !important;
    padding:0 !important;

    color:#0f172a !important;

    font-size:25px !important;
}


/* ========================================================
   TABLE
======================================================== */

.pc-erp-wrapper .pc-table{

    width:100% !important;

    max-width:100% !important;

    margin:0 !important;

    border-collapse:collapse !important;

    background:#fff !important;
}


.pc-erp-wrapper .pc-table th{

    padding:14px 15px !important;

    background:#2563eb !important;

    color:#fff !important;

    text-align:left !important;

    font-size:14px !important;

    font-weight:600 !important;

    border:1px solid #2563eb !important;
}


.pc-erp-wrapper .pc-table td{

    padding:14px 15px !important;

    background:#fff !important;

    color:#334155 !important;

    font-size:14px !important;

    border:1px solid #e5e7eb !important;

    vertical-align:middle !important;
}


.pc-erp-wrapper .pc-table tr:hover td{

    background:#f8fafc !important;
}


/* ========================================================
   FORMS
======================================================== */

.pc-erp-wrapper input,
.pc-erp-wrapper select,
.pc-erp-wrapper textarea{

    width:100% !important;
    max-width:100% !important;

    padding:12px 14px !important;

    margin:0 0 15px !important;

    background:#fff !important;

    color:#334155 !important;

    border:1px solid #dbe2ea !important;

    border-radius:8px !important;

    font-size:15px !important;

    box-sizing:border-box !important;
}


.pc-erp-wrapper input:focus,
.pc-erp-wrapper select:focus,
.pc-erp-wrapper textarea:focus{

    border-color:#2563eb !important;

    outline:none !important;

    box-shadow:0 0 0 3px rgba(37,99,235,.10) !important;
}


/* ========================================================
   FOOTER
======================================================== */

.pc-erp-wrapper .pc-main hr{

    width:100% !important;

    margin:35px 0 !important;

    border:0 !important;

    border-top:1px solid #e5e7eb !important;
}


/* ========================================================
   TABLET
======================================================== */

@media (max-width:1100px){

    .pc-erp-wrapper{

        grid-template-columns:220px minmax(0,1fr) !important;
    }

    .pc-erp-wrapper .pc-sidebar{

        width:220px !important;
        min-width:220px !important;
    }

    .pc-erp-wrapper .pc-main{

        padding:30px !important;
    }

    .pc-erp-wrapper .pc-cards{

        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }
}


/* ========================================================
   MOBILE
======================================================== */

@media (max-width:768px){

    .pc-erp-wrapper{

        display:block !important;

        width:100% !important;

        min-height:100vh !important;

        margin-left:0 !important;
        margin-right:0 !important;
    }


    .pc-erp-wrapper .pc-sidebar{

        display:none !important;
    }


    .pc-erp-wrapper .pc-main{

        display:block !important;

        width:100% !important;

        min-height:100vh !important;

        margin:0 !important;

        padding:20px 15px 35px !important;
    }


    .pc-erp-wrapper .pc-header{

        flex-direction:column !important;

        align-items:flex-start !important;

        margin-bottom:22px !important;
    }


    .pc-erp-wrapper .pc-header h1{

        font-size:30px !important;
    }


    .pc-erp-wrapper .pc-cards{

        grid-template-columns:1fr !important;

        gap:15px !important;
    }


    .pc-erp-wrapper .pc-box{

        padding:18px !important;

        overflow-x:auto !important;
    }


    .pc-erp-wrapper .pc-table{

        min-width:650px !important;
    }
}


/* ==========================================================
   FINAL SIDEBAR FIX - v3
   Do NOT use 100vh on the sidebar.
   The ERP wrapper starts below the WordPress/Astra header.
========================================================== */

/* Keep the ERP grid normal and let the main column define page height */
.pc-erp-wrapper{
    align-items:start !important;
    overflow:visible !important;
}

/* Final sidebar rule - overrides every earlier sidebar rule */
.pc-erp-wrapper .pc-sidebar{
    grid-column:1 !important;
    grid-row:1 !important;

    width:260px !important;
    min-width:260px !important;

    /* IMPORTANT: no 100vh / calc(100vh...) */
    height:auto !important;
    min-height:0 !important;
    max-height:calc(100vh - 20px) !important;

    position:sticky !important;
    top:0 !important;

    align-self:start !important;

    margin:0 !important;
    padding:0 !important;

    overflow-y:auto !important;
    overflow-x:hidden !important;

    box-sizing:border-box !important;
}

/* The sidebar menu itself must be allowed to determine its height */
.pc-erp-wrapper .pc-sidebar ul{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
}

/* Make every menu item fully visible */
.pc-erp-wrapper .pc-sidebar li{
    height:auto !important;
    min-height:56px !important;
    overflow:visible !important;
}

.pc-erp-wrapper .pc-sidebar a{
    min-height:56px !important;
    height:auto !important;
    overflow:visible !important;
    white-space:normal !important;
}

/* Desktop/tablet */
@media (min-width:769px){

    .pc-erp-wrapper{
        grid-template-columns:260px minmax(0,1fr) !important;
        align-items:start !important;
    }

    .pc-erp-wrapper .pc-sidebar{
        width:260px !important;
        min-width:260px !important;
        position:sticky !important;
        top:0 !important;
        height:auto !important;
        min-height:0 !important;
        max-height:calc(100vh - 20px) !important;
    }
}

/* Tablet */
@media (min-width:769px) and (max-width:1100px){

    .pc-erp-wrapper{
        grid-template-columns:220px minmax(0,1fr) !important;
    }

    .pc-erp-wrapper .pc-sidebar{
        width:220px !important;
        min-width:220px !important;
    }
}

/* Mobile - keep existing mobile behavior */
@media (max-width:768px){

    .pc-erp-wrapper{
        display:block !important;
    }

    .pc-erp-wrapper .pc-sidebar{
        display:none !important;
        position:static !important;
        height:auto !important;
        max-height:none !important;
    }
}
/* =========================================================
   ERP CONTENT - MOVE UP
   Sidebar ko touch nahi karna
========================================================= */

@media (min-width: 769px) {

    .pc-erp-wrapper .pc-main {
        margin-left: 280px !important;

        /* content ko upar lao */
        margin-top: -170px !important;

        padding-top: 20px !important;

        width: calc(100% - 280px) !important;
        max-width: none !important;

        position: relative !important;
        z-index: 1 !important;
    }

    /* Dashboard/header ke extra top gap ko remove karo */
    .pc-erp-wrapper .pc-header {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    .pc-erp-wrapper .pc-header h1 {
        margin-top: 0 !important;
    }
}
/* =========================================================
   PATIENT CARE ERP - FINAL LAYOUT / RESPONSIVE OVERRIDE
   This block intentionally comes last so it overrides older
   experimental layout rules in this file.
========================================================= */

/* Remove WordPress/Astra page chrome around the ERP page. */
body:has(.pc-erp-wrapper) .site-header,
body:has(.pc-erp-wrapper) .site-footer,
body:has(.pc-erp-wrapper) .entry-header,
body:has(.pc-erp-wrapper) .page-header,
body:has(.pc-erp-wrapper) .ast-page-builder-template .entry-header,
body:has(.pc-erp-wrapper) .site-content .entry-title {
    display: none !important;
}

body:has(.pc-erp-wrapper) #content,
body:has(.pc-erp-wrapper) #primary,
body:has(.pc-erp-wrapper) .site-content,
body:has(.pc-erp-wrapper) .site-main,
body:has(.pc-erp-wrapper) .entry-content {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
}

body:has(.pc-erp-wrapper) {
    background: #f5f7fb !important;
    overflow-x: hidden !important;
}

/* ---------------- DESKTOP ---------------- */
@media (min-width: 769px) {

    .pc-erp-wrapper {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-height: calc(100vh - 32px) !important;
        margin: 0 !important;
        padding: 0 !important;
        position: relative !important;
        background: #f5f7fb !important;
        overflow: visible !important;
    }

    .pc-erp-wrapper .pc-sidebar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        width: 260px !important;
        min-width: 260px !important;
        height: 100vh !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        z-index: 9998 !important;
        box-sizing: border-box !important;
    }

    body.admin-bar .pc-erp-wrapper .pc-sidebar {
        top: 32px !important;
        height: calc(100vh - 32px) !important;
    }

    .pc-erp-wrapper .pc-main {
        display: block !important;
        width: calc(100% - 260px) !important;
        max-width: none !important;
        min-width: 0 !important;
        min-height: calc(100vh - 32px) !important;
        margin: 0 0 0 260px !important;
        padding: 24px 32px 40px !important;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        float: none !important;
        box-sizing: border-box !important;
        overflow: visible !important;
        background: #f5f7fb !important;
        z-index: 1 !important;
    }

    /* Cancel the previous -170px experiment. */
    .pc-erp-wrapper .pc-main {
        margin-top: 0 !important;
    }

    .pc-erp-wrapper .pc-header {
        margin: 0 0 22px !important;
        padding: 0 !important;
        min-height: 52px !important;
    }

    .pc-erp-wrapper .pc-header h1 {
        margin: 0 !important;
        font-size: 30px !important;
        line-height: 1.2 !important;
    }

    .pc-erp-wrapper .pc-cards {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 18px !important;
    }

    .pc-erp-wrapper .pc-box {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }
}

/* ---------------- TABLET ---------------- */
@media (min-width: 769px) and (max-width: 1100px) {
    .pc-erp-wrapper .pc-sidebar {
        width: 220px !important;
        min-width: 220px !important;
    }

    .pc-erp-wrapper .pc-main {
        width: calc(100% - 220px) !important;
        margin-left: 220px !important;
        padding: 22px 24px 35px !important;
    }

    .pc-erp-wrapper .pc-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* ---------------- MOBILE ---------------- */
@media (max-width: 768px) {

    body:has(.pc-erp-wrapper) .site-content {
        padding: 0 !important;
    }

    .pc-erp-wrapper {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 100vh !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #f5f7fb !important;
        overflow: visible !important;
    }

    /* Mobile navigation becomes a compact top menu instead of disappearing. */
    .pc-erp-wrapper .pc-sidebar {
        display: block !important;
        position: sticky !important;
        top: 0 !important;
        left: auto !important;
        bottom: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        z-index: 9998 !important;
        box-shadow: 0 3px 14px rgba(15,23,42,.12) !important;
    }

    body.admin-bar .pc-erp-wrapper .pc-sidebar {
        top: 46px !important;
        height: auto !important;
    }

    .pc-erp-wrapper .pc-logo {
        height: 58px !important;
        min-height: 58px !important;
        padding: 0 18px !important;
        font-size: 20px !important;
    }

    .pc-erp-wrapper .pc-sidebar ul {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 6px !important;
        background: #0b1220 !important;
    }

    .pc-erp-wrapper .pc-sidebar li {
        border: 0 !important;
        min-height: 0 !important;
    }

    .pc-erp-wrapper .pc-sidebar a {
        min-height: 44px !important;
        height: 44px !important;
        margin: 0 !important;
        padding: 0 10px !important;
        justify-content: center !important;
        text-align: center !important;
        border-radius: 7px !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        white-space: nowrap !important;
    }

    .pc-erp-wrapper .pc-main {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: calc(100vh - 46px) !important;
        margin: 0 !important;
        padding: 18px 12px 28px !important;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    .pc-erp-wrapper .pc-header {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 12px !important;
        width: 100% !important;
        margin: 0 0 16px !important;
    }

    .pc-erp-wrapper .pc-header h1 {
        font-size: 25px !important;
        line-height: 1.2 !important;
    }

    .pc-erp-wrapper .pc-header p {
        margin-top: 5px !important;
        font-size: 13px !important;
    }

    .pc-erp-wrapper .pc-header .pc-btn,
    .pc-erp-wrapper .pc-header a.pc-btn {
        width: 100% !important;
    }

    .pc-erp-wrapper .pc-cards,
    .pc-erp-wrapper .pc-summary-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        margin-bottom: 16px !important;
    }

    .pc-erp-wrapper .pc-card {
        padding: 15px !important;
        border-radius: 10px !important;
    }

    .pc-erp-wrapper .pc-card span {
        font-size: 11px !important;
        margin-bottom: 7px !important;
    }

    .pc-erp-wrapper .pc-card h2 {
        font-size: 23px !important;
    }

    .pc-erp-wrapper .pc-box {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 16px !important;
        padding: 15px !important;
        border-radius: 10px !important;
        overflow-x: auto !important;
    }

    .pc-erp-wrapper .pc-box-header {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .pc-erp-wrapper .pc-box-header .pc-btn,
    .pc-erp-wrapper .pc-box-header a.pc-btn {
        width: 100% !important;
    }

    .pc-erp-wrapper .pc-summary-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    .pc-erp-wrapper .pc-summary-card {
        padding: 14px !important;
    }

    .pc-erp-wrapper .pc-summary-card strong {
        font-size: 20px !important;
    }

    .pc-erp-wrapper .pc-table {
        min-width: 620px !important;
    }

    .pc-erp-wrapper input,
    .pc-erp-wrapper select,
    .pc-erp-wrapper textarea {
        max-width: 100% !important;
        font-size: 16px !important;
    }
}

@media (max-width: 480px) {
    .pc-erp-wrapper .pc-sidebar ul {
        grid-template-columns: 1fr 1fr !important;
    }

    .pc-erp-wrapper .pc-main {
        padding: 14px 10px 24px !important;
    }

    .pc-erp-wrapper .pc-cards,
    .pc-erp-wrapper .pc-summary-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    .pc-erp-wrapper .pc-card {
        padding: 12px !important;
    }

    .pc-erp-wrapper .pc-card h2 {
        font-size: 21px !important;
    }

    .pc-erp-wrapper .pc-header h1 {
        font-size: 23px !important;
    }
}

/* =========================================================
   RAAPTI ERP - MOBILE + LOGIN FINAL OVERRIDE
   This block is intentionally last and overrides older
   experimental mobile rules without changing the working
   desktop dashboard layout.
========================================================= */

/* Keep ERP independent from WordPress admin chrome on frontend. */
body:has(.pc-erp-wrapper) #wpadminbar{
    display:none !important;
}
body:has(.pc-erp-wrapper){
    margin-top:0 !important;
}

/* ---------------- MOBILE TOP BAR ---------------- */
.pc-mobile-topbar{
    display:none !important;
}

.pc-mobile-overlay{
    display:none !important;
}

/* ---------------- LOGIN ---------------- */
body:has(.pc-erp-login-wrapper){
    background:#f5f7fb !important;
}
body:has(.pc-erp-login-wrapper) #wpadminbar{
    display:none !important;
}
.pc-erp-login-wrapper{
    width:100% !important;
    min-height:100vh !important;
    min-height:100dvh !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:30px 20px !important;
    position:relative !important;
    overflow:hidden !important;
    background:
        radial-gradient(circle at 15% 20%,rgba(37,99,235,.18),transparent 32%),
        radial-gradient(circle at 85% 80%,rgba(16,185,129,.15),transparent 30%),
        linear-gradient(135deg,#eff6ff 0%,#f8fafc 50%,#ecfdf5 100%) !important;
}
.pc-erp-login-wrapper::before{
    content:"" !important;
    position:absolute !important;
    width:420px !important;
    height:420px !important;
    border-radius:50% !important;
    background:rgba(37,99,235,.07) !important;
    top:-180px !important;
    right:-140px !important;
}
.pc-erp-login-card{
    position:relative !important;
    z-index:1 !important;
    width:460px !important;
    max-width:100% !important;
    padding:36px !important;
    border:1px solid rgba(226,232,240,.95) !important;
    border-radius:24px !important;
    background:rgba(255,255,255,.96) !important;
    box-shadow:0 24px 70px rgba(15,23,42,.14) !important;
    backdrop-filter:blur(12px) !important;
}
.pc-erp-logo{
    text-align:center !important;
    margin-bottom:28px !important;
}
.pc-erp-logo img{
    display:block !important;
    width:145px !important;
    max-width:70% !important;
    height:auto !important;
    max-height:125px !important;
    object-fit:contain !important;
    margin:0 auto 12px !important;
}
.pc-erp-logo i{
    display:none !important;
}
.pc-erp-logo h2{
    margin:0 !important;
    color:#0f172a !important;
    font-size:25px !important;
    line-height:1.25 !important;
    font-weight:800 !important;
}
.pc-erp-logo p{
    margin:7px 0 0 !important;
    color:#64748b !important;
    font-size:14px !important;
}
.pc-erp-alert{
    padding:12px 14px !important;
    margin:0 0 18px !important;
    border:1px solid #fecaca !important;
    border-radius:10px !important;
    background:#fef2f2 !important;
    color:#991b1b !important;
}
.pc-erp-form-group{
    margin-bottom:18px !important;
}
.pc-erp-form-group label{
    display:block !important;
    margin-bottom:8px !important;
    color:#334155 !important;
    font-size:14px !important;
    font-weight:700 !important;
}
.pc-erp-input{
    width:100% !important;
    min-height:50px !important;
    padding:13px 15px !important;
    border:1px solid #dbe3ef !important;
    border-radius:11px !important;
    background:#f8fafc !important;
    color:#0f172a !important;
    font-size:16px !important;
    outline:none !important;
    transition:.2s ease !important;
}
.pc-erp-input:focus{
    background:#fff !important;
    border-color:#2563eb !important;
    box-shadow:0 0 0 4px rgba(37,99,235,.10) !important;
}
.pc-erp-form-row{
    margin:4px 0 20px !important;
    color:#64748b !important;
    font-size:13px !important;
}
.pc-erp-form-row label{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    cursor:pointer !important;
}
.pc-erp-form-row input[type="checkbox"]{
    width:16px !important;
    height:16px !important;
    margin:0 !important;
}
.pc-erp-btn{
    display:flex !important;
    width:100% !important;
    min-height:52px !important;
    align-items:center !important;
    justify-content:center !important;
    gap:9px !important;
    padding:13px 18px !important;
    border:0 !important;
    border-radius:11px !important;
    background:linear-gradient(135deg,#2563eb,#1d4ed8) !important;
    color:#fff !important;
    font-size:16px !important;
    font-weight:800 !important;
    cursor:pointer !important;
    box-shadow:0 10px 24px rgba(37,99,235,.22) !important;
    transition:transform .2s ease,box-shadow .2s ease !important;
}
.pc-erp-btn:hover{
    transform:translateY(-1px) !important;
    box-shadow:0 14px 28px rgba(37,99,235,.28) !important;
}

/* ---------------- MOBILE ERP ---------------- */
@media (max-width:768px){
    .pc-mobile-topbar{
        display:flex !important;
        position:sticky !important;
        top:0 !important;
        z-index:10001 !important;
        width:100% !important;
        height:62px !important;
        align-items:center !important;
        gap:12px !important;
        padding:8px 12px !important;
        background:#0f172a !important;
        color:#fff !important;
        box-shadow:0 4px 18px rgba(15,23,42,.18) !important;
    }
    .pc-mobile-menu-btn{
        width:42px !important;
        height:42px !important;
        flex:0 0 42px !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        border:1px solid rgba(255,255,255,.15) !important;
        border-radius:10px !important;
        background:#1e293b !important;
        color:#fff !important;
        font-size:20px !important;
        cursor:pointer !important;
    }
    .pc-mobile-brand{
        min-width:0 !important;
        display:flex !important;
        align-items:center !important;
        gap:9px !important;
    }
    .pc-mobile-brand img{
        width:39px !important;
        height:39px !important;
        object-fit:contain !important;
        flex:0 0 39px !important;
    }
    .pc-mobile-brand-text{
        color:#fff !important;
        font-size:12px !important;
        line-height:1.15 !important;
        font-weight:800 !important;
    }
    .pc-mobile-overlay{
        position:fixed !important;
        inset:0 !important;
        z-index:10000 !important;
        background:rgba(2,6,23,.55) !important;
        opacity:0 !important;
        pointer-events:none !important;
        transition:opacity .2s ease !important;
        display:block !important;
    }
    body.pc-mobile-menu-open .pc-mobile-overlay{
        opacity:1 !important;
        pointer-events:auto !important;
    }
    .pc-erp-wrapper .pc-sidebar{
        display:block !important;
        position:fixed !important;
        top:62px !important;
        left:0 !important;
        bottom:0 !important;
        width:min(285px,86vw) !important;
        min-width:0 !important;
        height:calc(100dvh - 62px) !important;
        max-height:none !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
        transform:translateX(-105%) !important;
        transition:transform .24s ease !important;
        z-index:10002 !important;
        box-shadow:12px 0 35px rgba(15,23,42,.25) !important;
    }
    body.pc-mobile-menu-open .pc-erp-wrapper .pc-sidebar{
        transform:translateX(0) !important;
    }
    .pc-erp-wrapper .pc-sidebar .pc-logo.pc-brand{
        min-height:132px !important;
        padding:12px 10px !important;
    }
    .pc-erp-wrapper .pc-sidebar .pc-brand-logo{
        width:92px !important;
        max-width:92px !important;
        max-height:78px !important;
    }
    .pc-erp-wrapper .pc-sidebar .pc-brand-name{
        font-size:11px !important;
    }
    .pc-erp-wrapper .pc-sidebar ul{
        display:block !important;
        padding:8px 0 !important;
        background:#0f172a !important;
    }
    .pc-erp-wrapper .pc-sidebar li{
        min-height:0 !important;
        border-bottom:1px solid rgba(255,255,255,.06) !important;
    }
    .pc-erp-wrapper .pc-sidebar a{
        min-height:50px !important;
        height:50px !important;
        justify-content:flex-start !important;
        padding:0 20px !important;
        border-radius:0 !important;
        font-size:15px !important;
    }
    .pc-erp-wrapper .pc-main{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        min-height:calc(100dvh - 62px) !important;
        margin:0 !important;
        padding:20px 12px 30px !important;
    }
    .pc-erp-wrapper .pc-header{
        gap:5px !important;
        margin-bottom:16px !important;
    }
    .pc-erp-wrapper .pc-header h1{
        font-size:28px !important;
    }
    .pc-erp-wrapper .pc-header p{
        font-size:14px !important;
    }
    .pc-erp-wrapper .pc-cards{
        grid-template-columns:1fr 1fr !important;
        gap:10px !important;
        margin-bottom:16px !important;
    }
    .pc-erp-wrapper .pc-card{
        min-height:105px !important;
        padding:16px !important;
        border-radius:14px !important;
    }
    .pc-erp-wrapper .pc-card span{
        font-size:11px !important;
    }
    .pc-erp-wrapper .pc-card h2{
        font-size:25px !important;
        margin-top:7px !important;
    }
    .pc-erp-wrapper .pc-billing-summary{
        padding:18px !important;
        border-radius:17px !important;
    }
    .pc-erp-wrapper .pc-billing-summary .pc-box-header h2{
        font-size:25px !important;
    }
    .pc-erp-wrapper .pc-billing-summary .pc-summary-subtitle{
        font-size:13px !important;
        line-height:1.5 !important;
    }
    .pc-erp-wrapper .pc-billing-summary .pc-box-header .pc-btn{
        width:auto !important;
        align-self:flex-start !important;
    }
    .pc-erp-wrapper .pc-summary-grid{
        grid-template-columns:1fr !important;
        gap:12px !important;
    }
    .pc-erp-wrapper .pc-summary-card{
        min-height:108px !important;
        padding:18px !important;
        border-radius:14px !important;
    }
    .pc-erp-wrapper .pc-summary-card strong{
        font-size:27px !important;
    }
    .pc-erp-wrapper .pc-box{
        padding:16px !important;
        margin-bottom:16px !important;
        border-radius:15px !important;
    }
    .pc-erp-wrapper .pc-box-header{
        gap:10px !important;
    }

    /* Recent Patients becomes readable cards instead of a clipped wide table. */
    .pc-erp-wrapper .pc-main .pc-box.pc-recent-patients .pc-table{
        min-width:0 !important;
        width:100% !important;
        display:block !important;
        border:0 !important;
    }
    .pc-erp-wrapper .pc-recent-patients .pc-table thead{
        display:none !important;
    }
    .pc-erp-wrapper .pc-recent-patients .pc-table tbody,
    .pc-erp-wrapper .pc-recent-patients .pc-table tr,
    .pc-erp-wrapper .pc-recent-patients .pc-table td{
        display:block !important;
        width:100% !important;
    }
    .pc-erp-wrapper .pc-recent-patients .pc-table tr{
        margin-bottom:10px !important;
        padding:10px 12px !important;
        border:1px solid #e2e8f0 !important;
        border-radius:12px !important;
        background:#fff !important;
    }
    .pc-erp-wrapper .pc-recent-patients .pc-table td{
        min-height:32px !important;
        padding:7px 0 7px 105px !important;
        position:relative !important;
        border:0 !important;
        font-size:14px !important;
        word-break:break-word !important;
    }
    .pc-erp-wrapper .pc-recent-patients .pc-table td::before{
        position:absolute !important;
        left:0 !important;
        top:7px !important;
        width:95px !important;
        color:#64748b !important;
        font-size:11px !important;
        font-weight:800 !important;
        text-transform:uppercase !important;
        letter-spacing:.03em !important;
    }
    .pc-erp-wrapper .pc-recent-patients .pc-table td:nth-child(1)::before{content:"Patient Code" !important;}
    .pc-erp-wrapper .pc-recent-patients .pc-table td:nth-child(2)::before{content:"Name" !important;}
    .pc-erp-wrapper .pc-recent-patients .pc-table td:nth-child(3)::before{content:"Mobile" !important;}
    .pc-erp-wrapper .pc-recent-patients .pc-table td:nth-child(4)::before{content:"Gender" !important;}
    .pc-erp-wrapper .pc-recent-patients .pc-table td:nth-child(5)::before{content:"Status" !important;}

    /* Other module tables remain horizontally scrollable rather than broken. */
    .pc-erp-wrapper .pc-table{
        min-width:620px !important;
    }
    .pc-erp-wrapper .pc-recent-patients .pc-table{
        min-width:0 !important;
    }

    .pc-erp-wrapper input,
    .pc-erp-wrapper select,
    .pc-erp-wrapper textarea{
        width:100% !important;
        max-width:100% !important;
        font-size:16px !important;
    }
    .pc-erp-wrapper .pc-btn{
        min-height:46px !important;
    }
}

@media (max-width:480px){
    .pc-mobile-topbar{height:58px !important;}
    .pc-mobile-menu-btn{width:40px !important;height:40px !important;flex-basis:40px !important;}
    .pc-mobile-brand img{width:36px !important;height:36px !important;flex-basis:36px !important;}
    .pc-mobile-brand-text{font-size:11px !important;}
    .pc-erp-wrapper .pc-sidebar{top:58px !important;height:calc(100dvh - 58px) !important;}
    .pc-erp-wrapper .pc-main{padding:16px 10px 24px !important;}
    .pc-erp-wrapper .pc-cards{grid-template-columns:1fr !important;gap:10px !important;}
    .pc-erp-wrapper .pc-card{min-height:96px !important;}
    .pc-erp-wrapper .pc-header h1{font-size:26px !important;}
    .pc-erp-login-card{padding:26px 20px !important;border-radius:20px !important;}
    .pc-erp-logo h2{font-size:22px !important;}
    .pc-erp-logo img{width:125px !important;}
}


/* =========================================================
   RAAPTI ERP - FINAL FRONTEND / MOBILE OVERRIDES
   CSS ONLY - does not change database, login, AJAX or attendance
   ========================================================= */

/* Hide WordPress frontend admin bar for ERP pages */
body:has(.pc-erp-wrapper) #wpadminbar,
body:has(.pce-staff-portal) #wpadminbar {
    display: none !important;
}
body:has(.pc-erp-wrapper),
body:has(.pce-staff-portal) {
    margin-top: 0 !important;
}

/* Remove Astra theme chrome around the ERP */
body:has(.pc-erp-wrapper) .site-header,
body:has(.pc-erp-wrapper) .ast-header-break-point .main-header-bar,
body:has(.pc-erp-wrapper) .site-footer,
body:has(.pce-staff-portal) .site-header,
body:has(.pce-staff-portal) .site-footer,
body:has(.pce-staff-portal) .ast-header-break-point .main-header-bar {
    display: none !important;
}

body:has(.pc-erp-wrapper) .site-content,
body:has(.pce-staff-portal) .site-content,
body:has(.pce-staff-portal) .content-area,
body:has(.pce-staff-portal) .entry-content {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: none !important;
}

/* Staff portal base */
.pce-staff-portal {
    width: 100% !important;
    min-height: 100vh !important;
    box-sizing: border-box !important;
    background:
        radial-gradient(circle at 100% 0%, rgba(37,99,235,.08), transparent 30%),
        #f5f7fb !important;
    padding: 28px !important;
    margin: 0 !important;
    color: #0f172a !important;
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
}

.pce-sp-wrap {
    width: 100% !important;
    max-width: 1180px !important;
    margin: 0 auto !important;
}

/* Professional staff header */
.pce-sp-head {
    min-height: 86px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    padding: 20px 24px !important;
    margin-bottom: 20px !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 20px !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 8px 30px rgba(15,23,42,.06) !important;
    box-sizing: border-box !important;
}

.pce-sp-head h1 {
    color: #0f172a !important;
    font-size: clamp(22px, 3vw, 30px) !important;
    line-height: 1.2 !important;
    margin: 0 0 6px !important;
    font-weight: 750 !important;
}

.pce-sp-head p {
    margin: 0 !important;
    color: #64748b !important;
    font-size: 14px !important;
}

.pce-sp-logout {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 44px !important;
    padding: 10px 18px !important;
    border-radius: 11px !important;
    background: #eef2ff !important;
    color: #3158d6 !important;
    text-decoration: none !important;
    font-weight: 700 !important;
}

/* Stats */
.pce-sp-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    margin-bottom: 20px !important;
}

.pce-sp-stat {
    min-height: 120px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    padding: 22px !important;
    border-radius: 18px !important;
    border: 1px solid #e5e7eb !important;
    background: #fff !important;
    box-shadow: 0 6px 22px rgba(15,23,42,.05) !important;
}

.pce-sp-stat strong {
    color: #2563eb !important;
    font-size: 30px !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    overflow-wrap: anywhere !important;
}

.pce-sp-stat span {
    margin-top: 8px !important;
    color: #64748b !important;
    font-size: 14px !important;
}

/* Main patient card */
.pce-sp-card {
    padding: 24px !important;
    margin-bottom: 20px !important;
    border-radius: 20px !important;
    border: 1px solid #e5e7eb !important;
    background: #fff !important;
    box-shadow: 0 8px 30px rgba(15,23,42,.06) !important;
}

.pce-sp-card h2 {
    color: #0f172a !important;
    margin: 0 0 6px !important;
    font-size: 24px !important;
    line-height: 1.25 !important;
}

.pce-sp-card-sub {
    color: #64748b !important;
    margin-bottom: 20px !important;
    font-size: 14px !important;
}

/* Patient card */
.pce-sp-patient {
    padding: 20px !important;
    margin-bottom: 15px !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 17px !important;
    background: #fff !important;
    box-shadow: 0 4px 16px rgba(15,23,42,.035) !important;
}

.pce-sp-patient:last-child {
    margin-bottom: 0 !important;
}

.pce-sp-patient-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 14px !important;
}

.pce-sp-patient h3 {
    color: #111827 !important;
    margin: 0 0 5px !important;
    font-size: 20px !important;
}

.pce-sp-code {
    color: #64748b !important;
    font-size: 13px !important;
}

/* Details - desktop */
.pce-sp-details {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin-top: 16px !important;
}

.pce-sp-detail {
    min-width: 0 !important;
    padding: 13px 14px !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
    overflow-wrap: anywhere !important;
}

.pce-sp-detail small {
    display: block !important;
    margin-bottom: 5px !important;
    color: #64748b !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

/* Buttons */
.pce-sp-actions {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    margin-top: 16px !important;
}

.pce-sp-btn {
    min-height: 44px !important;
    border: 0 !important;
    border-radius: 11px !important;
    padding: 10px 18px !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    cursor: pointer !important;
}

.pce-sp-checkin {
    background: #16a34a !important;
    color: #fff !important;
}

.pce-sp-checkout {
    background: #ef4444 !important;
    color: #fff !important;
}

.pce-sp-btn:disabled {
    opacity: .55 !important;
    cursor: not-allowed !important;
}

.pce-sp-empty {
    padding: 42px 20px !important;
    text-align: center !important;
    color: #64748b !important;
}

/* =========================================================
   MOBILE - compact, clean and readable
   ========================================================= */
@media (max-width: 767px) {

    html,
    body {
        overflow-x: hidden !important;
        max-width: 100% !important;
    }

    .pce-staff-portal {
        width: 100% !important;
        min-height: 100dvh !important;
        padding: 12px !important;
        background: #f5f7fb !important;
    }

    .pce-sp-wrap {
        width: 100% !important;
        max-width: none !important;
    }

    .pce-sp-head {
        min-height: auto !important;
        align-items: flex-start !important;
        flex-direction: column !important;
        padding: 17px !important;
        margin-bottom: 12px !important;
        border-radius: 17px !important;
    }

    .pce-sp-head h1 {
        font-size: 23px !important;
    }

    .pce-sp-head p {
        font-size: 13px !important;
    }

    .pce-sp-logout {
        width: 100% !important;
        min-height: 46px !important;
        box-sizing: border-box !important;
    }

    .pce-sp-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin-bottom: 12px !important;
    }

    .pce-sp-stat {
        min-height: 92px !important;
        padding: 16px !important;
        border-radius: 16px !important;
    }

    .pce-sp-stat strong {
        font-size: 25px !important;
    }

    .pce-sp-card {
        padding: 15px !important;
        border-radius: 17px !important;
    }

    .pce-sp-card h2 {
        font-size: 21px !important;
    }

    .pce-sp-card-sub {
        line-height: 1.45 !important;
        margin-bottom: 14px !important;
    }

    .pce-sp-patient {
        padding: 15px !important;
        border-radius: 15px !important;
    }

    .pce-sp-patient h3 {
        font-size: 19px !important;
    }

    .pce-sp-details {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        margin-top: 13px !important;
    }

    .pce-sp-detail {
        padding: 11px 12px !important;
        font-size: 15px !important;
    }

    .pce-sp-actions {
        margin-top: 12px !important;
    }

    .pce-sp-btn {
        width: 100% !important;
        min-height: 46px !important;
    }
}

/* Small phones */
@media (max-width: 380px) {
    .pce-staff-portal {
        padding: 8px !important;
    }

    .pce-sp-head,
    .pce-sp-card {
        padding: 13px !important;
    }

    .pce-sp-stat {
        padding: 14px !important;
    }
}

/* =========================================================
   RAAPTI ERP - GLOBAL FULL WIDTH FIX (FINAL)
   Applies to every normal ERP module loaded inside .pc-main.
   Does NOT change the mobile card/table behavior.
   ========================================================= */

html, body {
    margin: 0 !important;
    padding: 0 !important;
}

body:has(.pc-erp-wrapper) {
    overflow-x: hidden !important;
}

/* Break the ERP out of any Astra / Elementor / page-builder
   max-width container that may wrap the shortcode. */
body:has(.pc-erp-wrapper) .pc-erp-wrapper {
    display: block !important;
    position: relative !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* Fixed desktop sidebar */
@media (min-width: 769px) {

    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-sidebar {
        position: fixed !important;
        left: 0 !important;
        top: 0 !important;
        bottom: 0 !important;
        width: 260px !important;
        min-width: 260px !important;
        max-width: 260px !important;
        height: 100vh !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    body.admin-bar:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-sidebar {
        top: 32px !important;
        height: calc(100vh - 32px) !important;
    }

    /* Main area gets ALL remaining viewport width. */
    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main {
        display: block !important;
        width: calc(100vw - 260px) !important;
        max-width: none !important;
        min-width: 0 !important;
        margin: 0 0 0 260px !important;
        padding: 32px 32px 40px !important;
        box-sizing: border-box !important;
        position: relative !important;
        left: auto !important;
        right: auto !important;
        float: none !important;
        overflow: visible !important;
    }

    /* Every normal module directly inside the ERP main area
       is allowed to use the complete available width. */
    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main > * {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }

    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main .pc-card,
    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main .pc-box,
    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main .pc-table-wrap,
    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main .pc-billing-wrap,
    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main .pc-patient-list-box,
    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main .pc-reports-wrap {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }
}

/* Keep mobile behavior exactly as a single-column ERP layout. */
@media (max-width: 768px) {

    body:has(.pc-erp-wrapper) .pc-erp-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body:has(.pc-erp-wrapper) .pc-erp-wrapper .pc-main {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 16px 12px 28px !important;
        box-sizing: border-box !important;
    }
}