
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter','Segoe UI',sans-serif;background:#f0f2f5;color:#1a1a2e;font-size:14px;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}

:root{
  --navy:#0f2540;--navy2:#1a3a5c;--gold:#c8a84b;--gold2:#b8943b;
  --light:#f7f8fa;--border:#e2e8f0;--shadow:0 2px 16px rgba(0,0,0,.07);
}

/* Layout */
.portal-wrap{display:flex;min-height:100vh}

/* Sidebar */
.portal-sidebar{width:260px;background:var(--navy);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;overflow-y:auto}
.ps-logo{display:flex;align-items:center;gap:10px;padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.1)}
.ps-logo span{font-size:.82rem;font-weight:600;color:rgba(255,255,255,.6)}
.ps-profile{padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:12px}
.ps-biz-logo{width:44px;height:44px;border-radius:10px;object-fit:contain;background:#fff;padding:4px}
.ps-biz-initials{width:44px;height:44px;border-radius:10px;background:var(--gold);display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800;color:#fff;flex-shrink:0}
.ps-profile strong{display:block;font-size:.88rem;color:#fff;margin-bottom:4px}
.ps-nav{flex:1;padding:12px 0}
.ps-nav a{display:flex;align-items:center;gap:10px;padding:11px 20px;font-size:.88rem;font-weight:500;color:rgba(255,255,255,.7);transition:all .15s;border-left:3px solid transparent}
.ps-nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.ps-nav a.on{color:#fff;background:rgba(200,168,75,.15);border-left-color:var(--gold)}
.ps-nav a i{font-style:normal}
.ps-logout{color:rgba(255,100,100,.7)!important;margin-top:8px}
.ps-logout:hover{color:#ff6464!important}
.ps-footer{padding:16px 18px;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem}
.ps-footer a{color:rgba(255,255,255,.4)}
.ps-footer a:hover{color:var(--gold)}

/* Status badges */
.ps-status{display:inline-block;padding:3px 12px;border-radius:50px;font-size:.75rem;font-weight:700;text-transform:capitalize}
.status-approved{background:#e6f4ea;color:#1e7e34}
.status-pending{background:#fffbeb;color:#92600a}
.status-rejected{background:#fce8e6;color:#c00}

/* Main area */
.portal-main{margin-left:260px;flex:1;display:flex;flex-direction:column;min-height:100vh}
.portal-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50}
.portal-topbar h1{font-size:1.1rem;font-weight:700;color:var(--navy)}
.portal-topbar span{font-size:.85rem;color:#666}
.portal-content{padding:28px;flex:1}

/* Login page */
.portal-login-page{background:linear-gradient(135deg,#0f2540,#1a3a5c);display:flex;align-items:center;justify-content:center;min-height:100vh}
.portal-login-wrap{width:100%;max-width:440px;padding:20px}
.portal-login-box{background:#fff;border-radius:16px;padding:48px 40px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.plb-logo{text-align:center;margin-bottom:16px}
.portal-login-box h2{text-align:center;font-size:1.3rem;font-weight:800;color:var(--navy);margin-bottom:6px}
.plb-sub{text-align:center;font-size:.88rem;color:#666;margin-bottom:24px}
.plb-links{display:flex;justify-content:center;gap:12px;margin-top:20px;font-size:.85rem;color:#888}
.plb-links a{color:var(--navy);font-weight:500}

/* Dashboard hero */
.portal-hero-card{border-radius:14px;padding:28px;margin-bottom:24px;color:#fff}
.phc-inner{display:flex;align-items:center;gap:20px}
.phc-logo{width:64px;height:64px;border-radius:12px;object-fit:contain;background:#fff;padding:6px}
.phc-initials{width:64px;height:64px;border-radius:12px;background:var(--gold);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:800;color:#fff;flex-shrink:0}
.phc-inner h2{font-size:1.3rem;font-weight:800;margin-bottom:4px}
.phc-inner p{font-size:.9rem;color:rgba(255,255,255,.75);margin-bottom:8px}

/* Dash cards */
.dash-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}
.dash-card{background:#fff;border-radius:14px;padding:24px;border:1px solid var(--border);box-shadow:var(--shadow);text-align:center;transition:all .2s}
.dash-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.1)}
.dc-icon{font-size:2rem;margin-bottom:12px}
.dash-card h3{font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:8px}
.dash-card p{font-size:.84rem;color:#666;margin-bottom:16px;line-height:1.6}
.btn-portal{display:inline-block;padding:9px 20px;background:var(--navy);color:#fff;border-radius:8px;font-size:.85rem;font-weight:600;transition:background .2s}
.btn-portal:hover{background:var(--navy2)}

/* Info card */
.info-card{background:#fff;border-radius:14px;padding:28px;border:1px solid var(--border);box-shadow:var(--shadow)}
.info-card h3{font-size:1rem;font-weight:700;color:var(--navy);margin-bottom:20px;padding-bottom:12px;border-bottom:2px solid var(--border)}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.info-grid > div{display:flex;flex-direction:column;gap:3px}
.info-grid strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;color:#888;font-weight:700}
.info-grid span,.info-grid a{font-size:.92rem;color:#333}
.info-grid a{color:var(--navy);font-weight:500}

/* Portal cards */
.portal-card{background:#fff;border-radius:14px;padding:24px;margin-bottom:20px;border:1px solid var(--border);box-shadow:var(--shadow)}
.portal-card h3{font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:18px;padding-bottom:12px;border-bottom:1.5px solid var(--border)}

/* Edit layout */
.edit-layout{display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:flex-start}
.edit-main-col{}
.edit-side-col{position:sticky;top:80px}

/* Logo preview */
.logo-preview{text-align:center;padding:16px;background:var(--light);border-radius:10px;margin-bottom:4px}
.logo-preview img{max-height:80px;max-width:180px;object-fit:contain}
.logo-preview small{display:block;color:#888;margin-top:8px;font-size:.78rem}
.logo-placeholder{text-align:center;padding:24px;background:var(--light);border-radius:10px;color:#aaa;font-size:.88rem}

/* Forms */
.fg{margin-bottom:16px}
.fg label{display:block;font-size:.82rem;font-weight:600;color:#444;margin-bottom:5px}
.fg input,.fg textarea,.fg select{width:100%;padding:10px 13px;border:1.5px solid var(--border);border-radius:8px;font-size:.9rem;font-family:inherit;transition:border .2s;background:#fff}
.fg input:focus,.fg textarea:focus,.fg select:focus{outline:none;border-color:var(--navy)}
.fg input[type=file]{padding:7px;font-size:.82rem}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.btn-full{display:block;width:100%;background:var(--gold);color:#fff;padding:13px;border-radius:8px;font-size:1rem;font-weight:700;border:none;cursor:pointer;transition:background .2s;text-align:center}
.btn-full:hover{background:var(--gold2)}
.btn-full-portal{display:block;width:100%;background:var(--gold);color:#fff;padding:14px;border-radius:10px;font-size:1rem;font-weight:700;border:none;cursor:pointer;transition:all .2s;text-align:center;box-shadow:0 4px 16px rgba(200,168,75,.3)}
.btn-full-portal:hover{background:var(--gold2);transform:translateY(-1px)}

/* Alerts */
.alert{padding:13px 18px;border-radius:8px;margin-bottom:20px;font-weight:500;font-size:.9rem}
.al-success{background:#e6f4ea;color:#1e7e34;border-left:4px solid #34a853}
.al-error{background:#fce8e6;color:#c00;border-left:4px solid #ea4335}
.al-warning{background:#fffbeb;color:#92600a;border-left:4px solid #f59e0b}

@media(max-width:900px){
  .portal-sidebar{display:none}.portal-main{margin-left:0}
  .dash-cards{grid-template-columns:1fr}
  .edit-layout{grid-template-columns:1fr}
  .edit-side-col{position:static}
  .info-grid{grid-template-columns:1fr}
}
