/* =========================================================
   COMMON PORTAL CSS - FROZEN SHARED UI
   ========================================================= */
:root{
    --primary:#2563eb;
    --primary-dark:#1d4ed8;
    --bg:#f5f7fb;
    --surface:#fff;
    --text:#172033;
    --muted:#667085;
    --border:#e5e7eb;
    --danger:#dc2626;
    --warning:#d97706;
    --success:#16a34a;
    --sidebar-width:250px;
}

*{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
a{color:var(--primary)}
.app-shell{min-height:100vh;display:block}

.sidebar{
    width:var(--sidebar-width);min-height:100vh;background:#111827;color:#fff;
    position:fixed;left:0;top:0;bottom:0;overflow-y:auto;z-index:20
}
.brand{padding:20px 16px;font-size:19px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-nav{padding:12px}
.sidebar-nav a{display:block;color:#d1d5db;text-decoration:none;padding:10px 12px;border-radius:8px;margin-bottom:3px}
.sidebar-nav a:hover,.sidebar-nav a.active{background:rgba(255,255,255,.10);color:#fff}
.nav-section{margin:18px 10px 7px;color:#9ca3af;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.logout-link{margin-top:18px;border-top:1px solid rgba(255,255,255,.08);padding-top:14px!important}

.page-content{
    margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));
    min-height:100vh;padding:28px 30px
}
.page-header{
    display:flex;align-items:center;justify-content:space-between;gap:16px;
    margin-bottom:20px
}
.page-header h1{margin:0 0 5px;font-size:26px}
.page-header p{margin:0}
.muted{color:var(--muted)}

.card{
    background:var(--surface);border:1px solid var(--border);border-radius:12px;
    padding:22px;margin-bottom:20px;box-shadow:0 1px 2px rgba(16,24,40,.03)
}

.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    border:0;border-radius:8px;padding:10px 15px;min-height:40px;
    cursor:pointer;background:var(--primary);color:#fff;text-decoration:none;font-weight:600
}
.btn:hover{background:var(--primary-dark)}
.btn-light{background:#fff;color:var(--text);border:1px solid var(--border)}
.btn-light:hover{background:#f9fafb}

.button-group{display:flex;gap:8px;flex-wrap:wrap}

.filter-card{padding:16px}
.filter-grid{display:grid;grid-template-columns:minmax(220px,2fr) minmax(180px,1fr) auto auto;gap:10px;align-items:end}

.form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 22px;
    margin-bottom:22px
}
.form-full{grid-column:1/-1}

.form-section-title{
    font-weight:700;font-size:16px;margin:8px 0 16px;padding-bottom:10px;
    border-bottom:1px solid var(--border)
}

.form-group{min-width:0}
label{display:block;font-size:13px;font-weight:600;margin:0 0 7px;color:#344054}
.form-control{
    display:block;width:100%;height:42px;padding:9px 11px;
    border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:var(--text);
    font:inherit;line-height:1.4;outline:none
}
textarea.form-control{height:auto;min-height:95px;resize:vertical}
select.form-control{cursor:pointer}
.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.12)}

.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;background:var(--surface)}
th,td{padding:12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
th{font-size:12px;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.actions{white-space:nowrap}
.actions a{margin-right:8px}
.empty-state{text-align:center;color:var(--muted);padding:28px}

.alert{padding:12px 14px;border-radius:8px;margin-bottom:18px}
.alert-danger{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.alert-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}

.badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef2ff;font-size:12px;font-weight:600}
.badge-important{background:#fee2e2;color:#991b1b}
.badge-normal{background:#fef3c7;color:#92400e}
.badge-not-responding{background:#f3f4f6;color:#374151}

.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px}
.stat-card span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}
.stat-card strong{font-size:20px}

.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.section-heading h2{margin:0;font-size:18px}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.detail-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}
.detail-grid strong{display:block;font-size:14px;line-height:1.5}
.detail-full{grid-column:1/-1}

.timeline{border-left:2px solid var(--border);padding-left:18px}
.timeline-item{position:relative;padding:0 0 18px}
.timeline-item:before{content:'';position:absolute;left:-25px;top:3px;width:10px;height:10px;border-radius:50%;background:var(--primary)}
.timeline-item strong,.timeline-item span,.timeline-item small{display:block}
.timeline-item span{margin-top:4px}
.timeline-item small{color:var(--muted);margin-top:5px}

@media(max-width:900px){
    .sidebar{width:220px}
    .page-content{margin-left:220px;width:calc(100% - 220px);padding:22px}
    .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .filter-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
    .sidebar{position:relative;width:100%;min-height:auto}
    .app-shell{display:block}
    .page-content{margin-left:0;width:100%;padding:16px}
    .page-header{align-items:flex-start;flex-direction:column}
    .form-grid,.detail-grid,.stats-grid,.filter-grid{grid-template-columns:1fr}
    .form-full,.detail-full{grid-column:auto}
}

/* Dashboard */
.alert-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}
.alert-tile{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px;border-radius:12px;text-decoration:none;border:1px solid var(--border);background:#fff;color:var(--text)}
.alert-tile span{font-weight:600}
.alert-tile strong{font-size:24px}
.alert-tile-danger{background:#fff7f7;border-color:#fecaca;color:#991b1b}
.alert-tile-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}
.alert-tile-info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}
.alert-tile-primary{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.dashboard-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.mini-alert{border:1px solid var(--border);border-radius:10px;padding:15px;background:#fafafa}
.mini-alert span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}
.mini-alert strong{font-size:18px}
.nav-count{float:right;min-width:20px;padding:2px 6px;border-radius:999px;text-align:center;font-size:11px;font-weight:700;color:#fff}
.nav-count-warning{background:var(--warning)}
.nav-count-danger{background:var(--danger)}
@media(max-width:1000px){
    .alert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .dashboard-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
    .dashboard-grid,.alert-grid,.dashboard-mini-grid{grid-template-columns:1fr}
}

.customer-filter-grid{display:grid;grid-template-columns:2fr 1fr 1.2fr 1.2fr auto auto;gap:10px;align-items:end}
.intelligence-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}
.intelligence-strip>div{padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:#fafafa}
.intelligence-strip span{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}
.intelligence-strip strong{font-size:14px}
.timeline{display:flex;flex-direction:column;gap:12px}
.timeline-item{display:grid;grid-template-columns:110px 1fr;gap:15px;padding:12px 0;border-bottom:1px solid var(--border)}
.timeline-item:last-child{border-bottom:0}
.timeline-date{font-size:12px;color:var(--muted)}
.timeline-content{position:relative}
.timeline-content strong{display:inline-block;margin-right:8px}
.timeline-type{font-size:11px;padding:3px 7px;border-radius:999px;background:#f1f5f9}
.timeline-content p{margin:5px 0 0;color:var(--muted);font-size:13px}
@media(max-width:1100px){.customer-filter-grid{grid-template-columns:1fr 1fr 1fr}.intelligence-strip{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.customer-filter-grid,.intelligence-strip{grid-template-columns:1fr}.timeline-item{grid-template-columns:1fr;gap:4px}}

.report-filter-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr 2fr auto auto;gap:10px;align-items:end}
.report-filter-grid label{display:block}
.report-summary-list{display:flex;flex-direction:column;gap:12px}
.report-summary-list>div{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid var(--border)}
.report-summary-list>div:last-child{border-bottom:0}
.report-summary-list span{color:var(--muted)}
@media(max-width:1100px){.report-filter-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.report-filter-grid{grid-template-columns:1fr}}

.activity-filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto auto;gap:10px;align-items:end}
@media(max-width:1100px){.activity-filter-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.activity-filter-grid{grid-template-columns:1fr}}

.expense-filter-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1.7fr auto auto;gap:10px;align-items:end}
@media(max-width:1100px){.expense-filter-grid{grid-template-columns:1fr 1fr 1fr}}@media(max-width:700px){.expense-filter-grid{grid-template-columns:1fr}}

.notification-list{display:flex;flex-direction:column}.notification-item{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;padding:15px 10px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.notification-item:hover{background:#fafafa}.notification-icon{font-size:23px;text-align:center}.notification-body{display:flex;flex-direction:column;gap:4px}.notification-body span{font-size:13px;color:var(--muted)}.notification-date{font-size:12px;color:var(--muted)}.notification-danger{border-left:3px solid var(--danger)}.notification-warning{border-left:3px solid var(--warning)}.notification-info{border-left:3px solid var(--info)}.notification-primary{border-left:3px solid var(--primary)}.notification-money{border-left:3px solid var(--success)}.notification-bell{position:fixed;right:25px;top:18px;z-index:1000;background:#fff;border:1px solid var(--border);border-radius:999px;padding:8px;text-decoration:none;font-size:20px}.notification-bell span{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;border-radius:999px;background:#dc2626;color:#fff;font-size:10px;line-height:18px;text-align:center;font-weight:700}
.settings-card{max-width:1000px}.settings-card hr{border:0;border-top:1px solid var(--border);margin:25px 0}.settings-danger{border-left:3px solid var(--danger)}

.compact-grid{max-width:500px}.inline-form{display:flex;gap:10px;align-items:center;max-width:600px}
@media(max-width:700px){.inline-form{flex-direction:column;align-items:stretch}}

/* v2.9 mobile responsive */
html{overflow-x:hidden}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.form-control,select,textarea,input{max-width:100%;box-sizing:border-box}.mobile-sidebar-toggle{display:none}
@media(max-width:900px){
.sidebar{position:fixed!important;left:-280px;top:0;bottom:0;width:260px;z-index:1200;transition:left .2s;overflow-y:auto}.sidebar.mobile-open{left:0}.mobile-sidebar-toggle{display:flex;position:fixed;left:12px;top:12px;z-index:1300;width:42px;height:42px;border:1px solid var(--border);border-radius:8px;background:#fff;align-items:center;justify-content:center;font-size:20px}.main-content,.page-content{width:100%;box-sizing:border-box;padding:16px}.page-header{padding-left:50px;flex-wrap:wrap}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid,.expense-filter-grid,.activity-filter-grid{grid-template-columns:1fr!important}.form-full{grid-column:1!important}.card{width:100%;box-sizing:border-box;overflow:hidden}.table-wrap table{min-width:650px}
}
@media(max-width:600px){.main-content,.page-content{padding:12px}.stats-grid{grid-template-columns:1fr}.page-header h1{font-size:22px}.page-header .btn,.btn{width:100%;text-align:center}.inline-form{display:grid!important;grid-template-columns:1fr!important}.notification-item{grid-template-columns:38px 1fr}.notification-date{grid-column:2}}
