@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root{
    --bg:#f5f5f7;
    --card:#ffffff;
    --text:#111111;
    --muted:#7d7d86;
    --border:#ececf1;
    --primary:#000000;
    --primary-text:#ffffff;
    --shadow:0 12px 30px rgba(17,17,17,0.06);
    --radius-xl:28px;
    --radius-lg:20px;
    --radius-md:16px;
    --radius-sm:12px;
    --input-h:42px;
    --container:1180px;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html,body{
    width:100%;
    min-height:100%;
}

body{
    font-family:'Inter',sans-serif;
    background:var(--bg);
    color:var(--text);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

button,
input{
    font-family:'Inter',sans-serif;
}

input,
button{
    outline:none;
}

.auth-shell{
    min-height:100vh;
    padding:20px 16px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:
        radial-gradient(circle at top left, rgba(0,0,0,0.03), transparent 28%),
        radial-gradient(circle at top right, rgba(0,0,0,0.025), transparent 24%),
        var(--bg);
}

.auth-card{
    width:100%;
    max-width:420px;
    background:var(--card);
    border:1px solid rgba(17,17,17,0.03);
    border-radius:var(--radius-xl);
    box-shadow:var(--shadow);
    padding:24px 18px 20px;
    position:relative;
    overflow:hidden;
}

.auth-card::before{
    content:"";
    position:absolute;
    top:-60px;
    right:-60px;
    width:140px;
    height:140px;
    border-radius:50%;
    background:rgba(0,0,0,0.02);
}

.auth-card::after{
    content:"✦";
    position:absolute;
    top:18px;
    right:18px;
    font-size:18px;
    color:#111;
    opacity:.85;
}

.auth-brand{
    margin-bottom:22px;
    position:relative;
    z-index:1;
}

.auth-brand .mini-logo{
    width:84px;
    height:84px;
    margin:0 auto 18px;
    border:1.5px solid var(--border);
    border-radius:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fafafa;
    position:relative;
}

.auth-brand .mini-logo::before{
    content:"✦";
    font-size:34px;
    color:#1a1a1a;
}

.auth-brand h1{
    font-size:28px;
    line-height:1.15;
    font-weight:800;
    text-align:left;
    letter-spacing:-0.03em;
    margin-bottom:8px;
}

.auth-brand p{
    font-size:13px;
    line-height:1.6;
    color:var(--muted);
}

.auth-form{
    display:flex;
    flex-direction:column;
    gap:14px;
    position:relative;
    z-index:1;
}

.form-group{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.form-group label{
    font-size:13px;
    font-weight:600;
    color:#141414;
}

.form-group input{
    width:100%;
    height:var(--input-h);
    border:1px solid var(--border);
    border-radius:8px;
    background:#fff;
    padding:0 15px;
    font-size:12px;
    color:var(--text);
    transition:all .2s ease;
}

.form-group input::placeholder{
    color:#a0a0a8;
}

.form-group input:focus{
    border-color:#111;
    box-shadow:0 0 0 3px rgba(17,17,17,0.05);
}

.password-wrap{
    position:relative;
}

.password-wrap input{
    padding-right:44px;
}

.password-toggle{
    position:absolute;
    top:50%;
    right:14px;
    transform:translateY(-50%);
    border:none;
    background:transparent;
    font-size:16px;
    color:#9a9aa3;
    cursor:pointer;
}

.btn{
    border:none;
    border-radius:6px;
    min-height:42px;
    padding:12px 16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-size:12px;
    font-weight:600;
    cursor:pointer;
    transition:all .2s ease;
}

.btn-block{
    width:100%;
}

.btn-primary{
    background:var(--primary);
    color:var(--primary-text);
    box-shadow:0 10px 20px rgba(0,0,0,0.09);
}

.btn-primary:hover{
    transform:translateY(-1px);
}

.btn-outline{
    background:#fff;
    color:#111;
    border:1px solid var(--border);
}

.btn-outline:hover{
    background:#fafafa;
}

.btn-soft{
    background:#f8f8f8;
    color:#111;
    border:1px solid var(--border);
}

.auth-links{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-top:4px;
    flex-wrap:wrap;
}

.auth-links a{
    font-size:13px;
    color:var(--muted);
    font-weight:600;
}

.auth-links a strong,
.auth-links a:hover{
    color:#111;
}

.single-link{
    justify-content:center;
}

.auth-divider{
    display:flex;
    align-items:center;
    gap:12px;
    margin:6px 0 2px;
}

.auth-divider::before,
.auth-divider::after{
    content:"";
    flex:1;
    height:1px;
    background:var(--border);
}

.auth-divider span{
    font-size:12px;
    color:var(--muted);
    white-space:nowrap;
}

.social-stack{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.social-btn{
    width:100%;
    min-height:48px;
    border-radius:14px;
    border:1px solid var(--border);
    background:#fff;
    font-size:14px;
    font-weight:600;
    color:#121212;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
}

.social-icon{
    width:18px;
    height:18px;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    background:#111;
    color:#fff;
}

.alert{
    margin-bottom:14px;
    border-radius:14px;
    padding:12px 14px;
    font-size:13px;
    line-height:1.55;
    font-weight:500;
}

.alert-success{
    background:#f5f9f2;
    border:1px solid #e2ecd9;
    color:#334d25;
}

.alert-danger{
    background:#fff4f4;
    border:1px solid #f1dada;
    color:#8f2c2c;
}

.auth-note{
    font-size:11.5px;
    line-height:1.6;
    color:var(--muted);
    text-align:center;
    margin-top:2px;
}

.checkbox-line{
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-size:12px;
    color:var(--muted);
    line-height:1.5;
}

.checkbox-line input{
    margin-top:2px;
    width:16px;
    height:16px;
    accent-color:#111;
    flex:0 0 auto;
}

.dashboard-shell{
    min-height:100vh;
    padding:20px 14px 90px;
    background:var(--bg);
}

.mobile-topbar{
    background:var(--card);
    border:1px solid rgba(17,17,17,0.04);
    border-radius: 6px;
    box-shadow:var(--shadow);
    padding:18px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
}

.mobile-topbar h2{
    font-size:18px;
    line-height:1.1;
    font-weight:700;
    letter-spacing:-0.03em;
}

.mobile-topbar p{
    margin-top:4px;
    font-size:10px;
    color:var(--muted);
}

.dashboard-grid{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.dashboard-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.dash-card{
    background:var(--card);
    border:1px solid rgba(17,17,17,0.04);
    border-radius: 8px;
    box-shadow:var(--shadow);
    padding:18px 16px;
    position:relative;
    overflow:hidden;
    display: flex;
}

.dash-card::after{
    content:"";
    position:absolute;
    top:-30px;
    right:-30px;
    width:90px;
    height:90px;
    border-radius:50%;
    background:rgba(0,0,0,0.025);
}

.dash-card .dash-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:10px;
    position:relative;
    z-index:1;
}

.dash-card h3{
    font-size:12px;
    font-weight:600;
    color:var(--muted);
}

.dash-badge{
    min-width:32px;
    height:32px;
    border-radius:8px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#111;
    color:#fff;
    font-size:14px;
    font-weight:700;
}

.dash-value{
    font-size:26px;
    line-height:1;
    font-weight:700;
    letter-spacing:-0.04em;
    margin-bottom:5px;
    position:relative;
    z-index:1;
    margin-left: auto;
}

.dash-card p{
    font-size:10px;
    color:var(--muted);
    line-height:1.3;
    position:relative;
    z-index:1;
}

.panel-card{
    background:var(--card);
    border:1px solid rgba(17,17,17,0.04);
    border-radius: 8px;
    box-shadow:var(--shadow);
    padding:18px 16px;
    margin-bottom: 15px;
}

.panel-card h3{
    font-size:14px;
    font-weight:700;
    margin-bottom:14px;
    letter-spacing:-0.02em;
}

.quick-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.quick-btn{
    min-height:74px;
    background:#fafafa;
    border:1px solid var(--border);
    border-radius: 6px;
    padding:12px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:6px;
}

.quick-btn strong{
    font-size:12px;
}

.quick-btn span{
    font-size:10px;
    color:var(--muted);
}

.activity-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.activity-item{
    background:#fafafa;
    border:1px solid var(--border);
    border-radius:16px;
    padding:12px 13px;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
}

.activity-item strong{
    display:block;
    font-size:13px;
    margin-bottom:4px;
}

.activity-item span{
    display:block;
    font-size:12px;
    color:var(--muted);
    line-height:1.45;
}

.activity-tag{
    white-space:nowrap;
    background:#111;
    color:#fff;
    border-radius:999px;
    padding:7px 10px;
    font-size:11px;
    font-weight:700;
}

.stat-strip{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-top:4px;
}

.stat-pill{
    background:#fafafa;
    border:1px solid var(--border);
    border-radius: 6px;
    padding:12px 10px;
    text-align:center;
}

.stat-pill strong{
    display:block;
    font-size:18px;
    font-weight:800;
    margin-bottom:4px;
}

.stat-pill span{
    font-size:10px;
    color:var(--muted);
    line-height:1.2;
}

.empty-state{
    background:#fafafa;
    border:1px dashed #d9d9df;
    border-radius:6px;
    padding:18px 14px;
    text-align:center;
}

.empty-state strong{
    display:block;
    font-size:14px;
    margin-bottom:6px;
}

.empty-state p{
    font-size:10px;
    color:var(--muted);
    line-height:1.2;
}

.page-wrap{
    width:100%;
    max-width:var(--container);
    margin:0 auto;
}

@media (min-width: 576px){
    .auth-shell{
        padding:28px 18px;
    }

    .auth-card{
        padding:28px 22px 22px;
    }

    .quick-actions-mbl{
        display:grid;
        grid-template-columns:1fr 1fr !important;
    }
}

@media (min-width: 768px){
    .auth-card{
        max-width:460px;
        padding:32px 24px 24px;
    }

    .dashboard-shell{
        padding:24px 20px 100px;
    }

    .dashboard-cards{
        grid-template-columns:repeat(2,1fr);
    }

    .dashboard-grid{
        gap:16px;
    }

    .panel-card{
        padding:22px 18px;
    }

    .quick-actions-mbl{
        display:grid;
        grid-template-columns:1fr 1fr !important;
    }
}

@media (min-width: 1024px){
    .dashboard-shell{
        padding:28px 24px 110px;
    }

    .page-wrap{
        max-width:1100px;
    }

    .dashboard-cards{
        grid-template-columns:repeat(4,1fr);
    }

    .dashboard-layout{
        display:grid;
        grid-template-columns:1.15fr .85fr;
        gap:18px;
        align-items:start;
    }
}

.ui-select{
    width:100%;
    height:42px;
    border:1px solid var(--border);
    border-radius: 8px;
    background:#fff;
    padding:0 15px;
    font-size:12px;
    color:var(--text);
}

.project-list-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
}

.project-card-ui{
    background:#fff;
    border:1px solid rgba(17,17,17,0.04);
    border-radius:24px;
    box-shadow:var(--shadow);
    overflow:hidden;
}

.project-cover-ui{
    height:190px;
    background:#f1f1f3;
}

.project-cover-ui img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.project-cover-placeholder,
.public-cover-placeholder{
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f1f1f3;
    color:#666;
    font-weight:700;
}

.project-body-ui{
    padding:16px;
}

.project-status-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-bottom:12px;
}

.project-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#111;
    color:#fff;
    border-radius:999px;
    padding:7px 12px;
    font-size:11px;
    font-weight:700;
}

.project-city{
    font-size:12px;
    color:var(--muted);
    font-weight:600;
}

.project-body-ui h3{
    font-size:21px;
    line-height:1.2;
    margin-bottom:6px;
}

.project-body-ui p{
    font-size:13px;
    color:var(--muted);
    line-height:1.5;
}

.project-price-box{
    margin-top:14px;
    margin-bottom:14px;
    font-size:24px;
    font-weight:800;
    letter-spacing:-0.03em;
}

.public-link-box{
    margin-bottom:14px;
}

.public-link-box label{
    display:block;
    font-size:12px;
    font-weight:700;
    margin-bottom:8px;
    color:#111;
}

.public-link-box input{
    width:100%;
    height:48px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fafafa;
    padding:0 14px;
    font-size:12px;
    color:#555;
}

.project-actions-ui{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:10px;
}

.public-project-shell{
    min-height:100vh;
    padding:20px 14px 40px;
    background:var(--bg);
}

.public-project-wrap{
    max-width:850px;
    margin:0 auto;
}

.public-project-card{
    background:#fff;
    border:1px solid rgba(17,17,17,0.04);
    border-radius:28px;
    overflow:hidden;
    box-shadow:var(--shadow);
}

.public-cover{
    height:240px;
    background:#f0f0f2;
}

.public-cover img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.public-content{
    padding:20px 16px;
}

.public-content h1{
    font-size:30px;
    line-height:1.1;
    letter-spacing:-0.03em;
    margin-top:12px;
    margin-bottom:8px;
}

.public-location{
    font-size:14px;
    color:var(--muted);
    margin-bottom:16px;
}

.public-price{
    font-size:28px;
    font-weight:800;
    margin-bottom:18px;
}

.public-mini-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:18px;
}

.public-mini-card{
    background:#fafafa;
    border:1px solid var(--border);
    border-radius:18px;
    padding:14px 12px;
}

.public-mini-card strong{
    display:block;
    font-size:15px;
    margin-bottom:5px;
}

.public-mini-card span{
    font-size:12px;
    color:var(--muted);
}

.public-section{
    margin-bottom:16px;
}

.public-section h3{
    font-size:16px;
    margin-bottom:8px;
}

.public-section p{
    font-size:13px;
    line-height:1.7;
    color:#555;
}

.public-note-box{
    background:#111;
    color:#fff;
    border-radius:18px;
    padding:16px;
    font-size:13px;
    line-height:1.6;
}

@media (min-width:768px){
    .project-list-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .project-actions-ui{
        grid-template-columns:repeat(3,1fr);
    }

    .public-content{
        padding:24px;
    }
}

.mb-16{
    margin-bottom:16px;
}

body.sidebar-open{
    overflow:hidden;
}

.app-mobile-topbar{
    position:sticky;
    top:0;
    z-index:1100;
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    background:rgba(245,245,247,0.96);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(17,17,17,0.05);
}

.app-mobile-brand{
    font-size:16px;
    font-weight:800;
    letter-spacing:-0.02em;
    color:#111;
}

.menu-toggle-btn{
    width:40px;
    height:40px;
    border:none;
    border-radius:6px;
    background:#111;
    color:#fff;
    font-size:20px;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}

.sidebar-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,0.35);
    opacity:0;
    visibility:hidden;
    transition:all .25s ease;
    z-index:1190;
}

.sidebar-overlay.active{
    opacity:1;
    visibility:visible;
}

.mobile-sidebar{
    position:fixed;
    top:0;
    left:0;
    width:290px;
    max-width:86vw;
    height:100vh;
    background:#fff;
    z-index:1200;
    transform:translateX(-100%);
    transition:transform .28s ease;
    box-shadow:0 10px 30px rgba(0,0,0,0.12);
    padding:18px 16px 24px;
    overflow-y:auto;
}

.mobile-sidebar.active{
    transform:translateX(0);
}

.mobile-sidebar__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:22px;
    padding-bottom:16px;
    border-bottom:1px solid var(--border);
}

.mobile-sidebar__head h3{
    font-size:20px;
    font-weight:800;
    margin-bottom:4px;
    letter-spacing:-0.02em;
}

.mobile-sidebar__head p{
    font-size:13px;
    color:var(--muted);
    line-height:1.5;
}

.sidebar-close-btn{
    width:38px;
    height:38px;
    border:none;
    border-radius:12px;
    background:#f3f3f5;
    color:#111;
    font-size:24px;
    cursor:pointer;
    line-height:1;
}

.mobile-sidebar__nav{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.sidebar-link{
    min-height:28px;
    display:flex;
    align-items:center;
    padding:0 14px;
    border-radius:16px;
    background:#fff;
    border:1px solid transparent;
    color:#111;
    font-size:14px;
    font-weight:600;
    transition:all .2s ease;
}

.sidebar-link:hover{
    background:#f7f7f8;
    border-color:var(--border);
}

.sidebar-link-danger{
    color:#9a2e2e;
    background:#fff5f5;
}

.sidebar-label{
    margin-top:10px;
    margin-bottom:2px;
    padding:0 4px;
    font-size:12px;
    font-weight:800;
    color:var(--muted);
    letter-spacing:.04em;
}

@media (min-width: 1024px){
    .app-mobile-topbar{
        display:none;
    }

    .sidebar-overlay{
        display:none;
    }

    .mobile-sidebar{
        display:none;
    }
}

.dashboard-shell,
.public-project-shell,
.auth-shell{
    position:relative;
}

.mt-20 {
    margin-top: 20px;
}

.bg-black {
    background: linear-gradient(180deg, #414141 0%, #020202 100%);
}

.title-white {
    color: #fff;
}


.news-panel{
    background: linear-gradient(180deg, #2f438d 0%, #1a1a35 100%);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 6px;
    box-shadow: 0 14px 30px rgba(0,0,0,0.10);
    padding: 16px;
    margin-bottom: 16px;
    color: #fff;
    height: 250px;
    overflow-y: auto;
}

.news-panel__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}

.news-panel__head h3{
    font-size:16px;
    line-height:1.1;
    font-weight:700;
    letter-spacing:-0.03em;
    margin-bottom:0px;
    color:#fff;
}

.news-panel__head p{
    font-size:12px;
    color:rgba(255,255,255,0.65);
    line-height:1.5;
}

.news-badge{
    background:#ffad2e;
    color:#ffffff;
    border-radius:999px;
    padding:7px 12px;
    font-size:11px;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
}

.news-list{
    max-height: 330px;
    overflow-y: auto;
    padding-right: 4px;
    display:flex;
    flex-direction:column;
    gap:12px;
}

/* custom scroll */
.news-list::-webkit-scrollbar{
    width:6px;
}

.news-list::-webkit-scrollbar-track{
    background:rgba(255,255,255,0.06);
    border-radius:20px;
}

.news-list::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,0.24);
    border-radius:20px;
}

.news-item{
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 8px;
    padding: 14px 14px 12px;
    transition: all .2s ease;
}

.news-item:hover{
    background: rgba(255,255,255,0.09);
    transform: translateY(-1px);
}

.news-title{
    display:block;
    font-size:14px;
    line-height:1.3;
    font-weight:700;
    color:#fff;
    margin-bottom: 5px;
}

.news-title:hover{
    color:#f2f2f2;
}

.news-description{
    font-size:10px;
    line-height:1.4;
    color:rgba(255,255,255,0.72);
    margin-bottom:8px;
}

.news-source{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:10px;
    font-weight:700;
    color:#111;
    background:#fff;
    border-radius:999px;
    padding:6px 10px;
}

.news-source::before{
    content:"•";
    font-size:14px;
    line-height:1;
}

.empty{
    background: rgba(255,255,255,0.05);
    border: 1px dashed rgba(255,255,255,0.12);
    border-radius: 16px;
    padding: 16px;
    text-align:center;
    font-size:13px;
    line-height:1.6;
    color:rgba(255,255,255,0.72);
}

@media (min-width: 768px){
    .news-panel{
        padding:18px;
        height: 250px;
        overflow-y: auto;
    }

    .news-list{
        max-height:360px;
    }

    .news-title{
        font-size:15px;
    }
}



.income-graph-card{
    background: linear-gradient(180deg, #732727 0%, #000000 100%);
    border: 1px solid rgba(255,255,255,0.06);
    color: #fff;
    overflow: hidden;
}

.graph-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:16px;
}

.graph-subtext{
    font-size:12px;
    color:rgba(255,255,255,0.65);
    line-height:1.6;
    margin-top:6px;
}

.graph-pill{
    background:#fff;
    color:#111;
    border-radius:999px;
    padding:7px 12px;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
}

.graph-summary-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:18px;
}

.graph-summary-box{
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:18px;
    padding:14px;
}

.graph-summary-box span{
    display:block;
    font-size:12px;
    color:rgba(255,255,255,0.65);
    margin-bottom:8px;
}

.graph-summary-box strong{
    font-size:18px;
    line-height:1.1;
    font-weight:700;
    letter-spacing:-0.03em;
    color:#fff;
}

.graph-canvas-wrap{
    width:100%;
    height:280px;
    background:rgba(255,255,255,0.04);
    border:1px solid rgba(255,255,255,0.06);
    border-radius:20px;
    padding:12px;
}

.graph-canvas-wrap canvas{
    width:100% !important;
    height:100% !important;
}

@media (max-width: 575px){
    .graph-summary-row{
        grid-template-columns:1fr 1fr;
    }

    .graph-canvas-wrap{
        height:240px;
    }
}

input[type="date"]{
    width:100%;
    height:42px;
    border:1px solid var(--border);
    border-radius:8px;
    background:#fff;
    padding:0 15px;
    font-size:12px;
    color:var(--text);
}



.contacts-table-wrap{
    width:100%;
    overflow-x:auto;
    background:#fff;
    border:1px solid rgba(17,17,17,0.04);
    border-radius:24px;
    box-shadow:var(--shadow);
}

.contacts-table{
    width:100%;
    min-width:1150px;
    border-collapse:collapse;
}

.contacts-table thead th{
    text-align:left;
    padding:16px 14px;
    font-size:12px;
    font-weight:800;
    color:var(--muted);
    border-bottom:1px solid var(--border);
    background:#fafafa;
    white-space:nowrap;
}

.contacts-table tbody td{
    padding:14px;
    border-bottom:1px solid var(--border);
    vertical-align:top;
}

.contacts-table tbody tr:last-child td{
    border-bottom:none;
}

.contact-user-cell{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:180px;
}

.contact-avatar{
    width:40px;
    height:40px;
    border-radius:50%;
    background:#111;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    font-weight:800;
    flex-shrink:0;
}

.contact-user-cell strong{
    display:block;
    font-size:14px;
    line-height:1.3;
    color:#111;
}

.contact-user-cell span{
    display:block;
    font-size:12px;
    color:var(--muted);
    margin-top:3px;
}

.contact-meta-cell strong{
    display:block;
    font-size:13px;
    color:#111;
    margin-bottom:4px;
}

.contact-meta-cell span{
    display:block;
    font-size:12px;
    color:var(--muted);
}

.table-project-name{
    display:inline-block;
    font-size:13px;
    font-weight:700;
    color:#111;
    min-width:120px;
}

.inline-contact-form{
    display:contents;
}

.table-select,
.table-date{
    width:100%;
    min-width:140px;
    height:42px;
    border:1px solid var(--border);
    border-radius: 8px;
    background:#fff;
    padding:0 12px;
    font-size:13px;
    color:#111;
}

.table-date{
    min-width:145px;
}

.table-action-group{
    display:flex;
    flex-direction:column;
    gap:8px;
    min-width:90px;
}

.btn-sm{
    min-height:40px;
    padding:10px 12px;
    font-size:12px;
    border-radius:12px;
}

.mobile-contact-list{
    display:none;
}

.mobile-contact-card{
    background:#fff;
    border:1px solid rgba(17,17,17,0.04);
    border-radius:22px;
    box-shadow:var(--shadow);
    padding:16px;
    margin-bottom:14px;
}

.mobile-contact-head{
    margin-bottom:14px;
}

.mobile-contact-info-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:14px;
}

.mobile-contact-info-grid label{
    display:block;
    font-size:11px;
    font-weight:700;
    color:var(--muted);
    margin-bottom:5px;
}

.mobile-contact-info-grid p{
    font-size:13px;
    color:#111;
    line-height:1.5;
}

.mobile-inline-form{
    display:flex;
    flex-direction:column;
    gap:12px;
}

@media (max-width: 991px){
    .desktop-table-view{
        display:none;
    }

    .mobile-contact-list{
        display:block;
    }
    .status-table {
        column-count: 2;
    }
}

/*.status-table {
    column-count: 2;
}*/

.ml-auto {
    margin-left: auto;
}


.todo-panel{
    min-height: 100%;
    margin-bottom: 15px;
}

.todo-panel-head{
    margin-bottom: 14px;
}

.todo-subtitle{
    font-size: 12px;
    color: rgba(255,255,255,0.65);
    margin-top: 6px;
    line-height: 1.5;
}

.todo-tabs{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:14px;
}

.todo-tab-btn{
    border:none;
    background:rgba(255,255,255,0.10);
    color:#fff;
    padding:10px 14px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    transition:all .2s ease;
}

.todo-tab-btn.active{
    background:#fff;
    color:#111;
}

.todo-tab-content{
    display:none;
}

.todo-tab-content.active{
    display:block;
    height: 200px;
    overflow-y: scroll;
}

.todo-task-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.todo-task-card{
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:18px;
    padding:14px;
}

.todo-task-card.overdue{
    border-color:rgba(255,120,120,0.35);
    background:rgba(255,90,90,0.08);
}

.todo-task-card.upcoming{
    border-color:rgba(255,255,255,0.10);
}

.todo-task-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:0px;
}

.todo-task-top strong{
    font-size:14px;
    color:#fff;
    line-height:1.4;
}

.todo-step-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 10px;
    border-radius:999px;
    background:#fff;
    color:#111;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
}

.todo-task-card p{
    font-size:13px;
    color:rgba(255,255,255,0.78);
    margin-bottom:6px;
}

.todo-task-card small{
    font-size:11px;
    color:rgba(255,255,255,0.58);
    line-height:1.5;
}

@media (max-width: 575px){
    .todo-tabs{
        flex-wrap: nowrap;
    }

    .todo-tab-btn{
        width:100%;
        text-align:center;
    }

    .todo-task-top{
        flex-direction:row;
        align-items:flex-start;
        margin-bottom: -4px;
    }

}
.d-flex {
    display: flex;
}
.phone-size {
    width: 20px;
}


.rera-page-card{
    background:#fff;
    border:1px solid rgba(17,17,17,0.04);
    border-radius:8px;
    box-shadow:var(--shadow);
    padding:18px;
}

.rera-tabs{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:16px;
}

.rera-tab-btn{
    border:none;
    background:#f3f3f5;
    color:#111;
    padding:11px 16px;
    border-radius:8px;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    transition:all .2s ease;
}

.rera-tab-btn.active{
    background:#111;
    color:#fff;
}

.rera-tab-content{
    display:none;
}

.rera-tab-content.active{
    display:block;
    height: 300px;
    overflow: scroll;
}

.rera-table-wrap{
    width:100%;
    overflow-x:auto;
    border:1px solid var(--border);
    border-radius:18px;
}

.rera-table{
    width:100%;
    border-collapse:collapse;
    background:linear-gradient(180deg, #000000 0%, #276881 100%);
}

.rera-simple-table{
    min-width:900px;
}

.rera-table thead th{
    background:#111;
    color:#fff;
    text-align:left;
    padding:14px 12px;
    font-size:12px;
    font-weight:800;
    white-space:nowrap;
    border-right:1px solid rgba(255,255,255,0.08);
}

.rera-table tbody td{
    padding:14px 12px;
    font-size:13px;
    line-height:1.7;
    color:#fff;
    border-bottom:1px solid #ececf1;
    vertical-align:top;
}

.rera-table tbody tr:nth-child(even){
    background:linear-gradient(180deg, #000000 0%, #276881 100%);
}

.rera-loading{
    text-align:center;
    padding:24px !important;
    color:#fff !important;
    font-weight:600;
}

.rera-project-name{
    font-weight:800;
    color:#fff;
    line-height:1.5;
    min-width:160px;
}

.rera-more-wrap{
    display:flex;
    flex-direction:column;
    /*gap:6px;*/
}

.rera-short-text,
.rera-mobile-address{
    color:#fff;
    line-height: 1.3;
    font-size: 12px;
}

.rera-more-btn,
.rera-less-btn{
    align-self:flex-start;
    border:none;
    background:transparent;
    color:#d2edf7;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    padding:0;
}

.rera-more-content{
    display:none;
    /*padding-top:4px;*/
    font-size:12px;
    line-height:1.7;
    color:#fff;
}

.rera-full-text{
    margin-bottom:6px;
}

.rera-more-wrap.active .rera-more-content{
    display:block;
}

.rera-more-wrap.active .rera-more-btn{
    display:none;
}

.rera-mobile-list{
    display:none;
}

.rera-mobile-card{
    /*background:linear-gradient(180deg, #111111 0%, #103c67 100%);*/
    background:linear-gradient(182deg, #975e17 0%, #492814 100%);
    border:1px solid #ececf1;
    border-radius:10px;
    padding:14px;
    margin-top:12px;
}

.rera-mobile-title{
    font-size:18px;
    font-weight:800;
    color:#fff;
    line-height:1.4;
    margin-bottom: 2px;
}

.rera-mobile-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:14px;
}

.rera-mobile-grid label{
    display:block;
    font-size:12px;
    font-weight:700;
    color:#d2edf7;
    margin-bottom:4px;
}

.rera-mobile-grid p{
    font-size:12px;
    line-height:1.5;
    color:#fff;
    word-break:break-word;
}

.rera-mobile-empty{
    background:#fff;
    border:1px solid #ececf1;
    border-radius:8px;
    padding:18px;
    text-align:center;
    font-size:13px;
    color:#fff;
    margin-top:12px;
}

@media (max-width: 768px){
    .rera-table-wrap{
        display:none;
    }

    .rera-mobile-list{
        display:block;
    }

    .rera-mobile-grid{
        grid-template-columns:1fr 1fr;
    }

    .rera-page-card{
        padding:14px;
    }

    .rera-tabs{
        flex-direction:column;
    }

    .rera-tab-btn{
        width:100%;
        text-align:center;
    }
}

.public-project-shell {
    /*background: linear-gradient(180deg, #0f2027, #203a43, #2c5364);*/
    padding: 40px 16px;
}

.public-project-wrap {
    max-width: 1100px;
    margin: auto;
}

.public-project-card {
    background: rgba(255,255,255,0.06);
    backdrop-filter: blur(20px);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}

.public-cover img {
    width: 100%;
    height: 340px;
    object-fit: cover;
}

.public-content {
    padding: 28px;
    color: #fff;
    background: linear-gradient(139deg, #181549d1 0%, #0074d7 100%);
}

.project-pill {
    background: #27ae60;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.public-content h1 {
    font-size: 28px;
    margin: 10px 0;
}

.public-location {
    color: #ccc;
    font-size: 14px;
}

.public-price {
    font-size: 28px;
    font-weight: 800;
    margin: 18px 0;
    color: #ffd166;
}

.public-mini-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px,1fr));
    gap: 12px;
    margin-top: 20px;
}

.public-mini-card {
    background: rgba(255,255,255,0.08);
    padding: 14px;
    border-radius: 14px;
    text-align: center;
}

.public-mini-card strong {
    display: block;
    font-size: 16px;
    margin-bottom: 4px;
}

.public-mini-card span {
    font-size: 12px;
    color: #ccc;
}

.public-section {
    margin-top: 26px;
}

.public-section h3 {
    margin-bottom: 10px;
    font-size: 18px;
}

.public-section p { 
    font-size: 14px;
    line-height: 1.7;
    color: #ddd;
}

.public-cta {
    margin-top: 30px;
    text-align: center;
}

.btn-whatsapp {
    background: linear-gradient(135deg, #25d366, #128c7e);
    color: #fff;
    padding: 14px 28px;
    border-radius: 999px;
    font-weight: 700;
    text-decoration: none;
    display: inline-block;
    transition: 0.3s;
}

.btn-whatsapp:hover {
    transform: scale(1.05);
}

.dashboard-greeting-card{
    background:linear-gradient(135deg, #111 0%, #243b45 100%);
    color:#fff;
    border-radius:10px;
    padding:14px 22px;
    box-shadow:0 18px 40px rgba(0,0,0,0.16);
}

.dashboard-greeting-card h2{
    color:#fff;
    font-size:15px;
    line-height:1;
    margin-bottom:8px;
}

.dashboard-greeting-card p{
    color:rgba(255,255,255,0.78);
    font-size:14px;
    line-height:1.2;
}

.news-item-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
}

.news-arrow-btn{
    width:28px;
    height:28px;
    border:none;
    border-radius:50%;
    background:#fff;
    color:#111;
    font-size:16px;
    font-weight:800;
    cursor:pointer;
    flex-shrink:0;
}

.news-description-full{
    display:none;
    margin-top:8px;
    margin-bottom:8px;
    font-size:12px;
    line-height:1.3;
    color:rgba(255,255,255,0.72);
}

.news-item.active .news-description-full{
    display:block;
}

