:root{--color-bg:#0a0a0a;--color-bg-secondary:#141414;--color-bg-card:#1a1a1a;--color-border:#2a2a2a;--color-gold:#c9a55c;--color-gold-hover:#b8944d;--color-text:#fff;--color-text-muted:#9ca3af;--color-text-dim:#6b7280;--font-heading:'Playfair Display',serif;--font-body:'Inter',sans-serif;--transition:all .3s ease}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);line-height:1.6}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--color-bg)}.login-container{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center}.login-card{width:100%;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:12px;padding:48px 40px;text-align:center}.login-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:12px}.login-logo .logo-main{font-family:var(--font-heading);font-size:32px;font-weight:700;letter-spacing:.1em;color:var(--color-text);line-height:1}.login-logo .logo-sub{font-size:12px;letter-spacing:.4em;color:var(--color-gold);text-transform:uppercase;margin-top:6px}.login-tagline{font-size:14px;color:var(--color-text-muted);margin-bottom:32px}.login-form{text-align:left}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:var(--color-text)}.input-wrapper{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:14px;color:var(--color-text-dim)}.input-wrapper input{width:100%;padding:14px 14px 14px 44px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font-size:14px;font-family:var(--font-body);transition:var(--transition)}.input-wrapper input:focus{outline:none;border-color:var(--color-gold)}.input-wrapper input::placeholder{color:var(--color-text-dim)}.toggle-password{position:absolute;right:14px;background:none;border:none;color:var(--color-text-dim);cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.toggle-password:hover{color:var(--color-text-muted)}.login-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;background:var(--color-gold);color:var(--color-bg);font-size:14px;font-weight:600;letter-spacing:.05em;border:none;border-radius:8px;cursor:pointer;margin-top:8px;transition:var(--transition)}.login-btn:hover{background:var(--color-gold-hover)}.login-footer{margin-top:24px;padding-top:24px;border-top:1px solid var(--color-border)}.forgot-password{font-size:13px;color:var(--color-text-muted)}.forgot-password:hover{color:var(--color-gold)}.back-link{display:flex;align-items:center;gap:8px;margin-top:32px;font-size:14px;color:var(--color-text-muted)}.back-link:hover{color:var(--color-gold)}.portal-layout{display:flex;min-height:100vh}.portal-sidebar{width:260px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header{padding:24px;border-bottom:1px solid var(--color-border)}.sidebar-logo{display:flex;flex-direction:column}.sidebar-logo .logo-main{font-family:var(--font-heading);font-size:18px;font-weight:600;letter-spacing:.1em;color:var(--color-text);line-height:1}.sidebar-logo .logo-sub{font-size:9px;letter-spacing:.2em;color:var(--color-gold);text-transform:uppercase;margin-top:2px}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-section{margin-bottom:24px}.nav-section-title{font-size:10px;font-weight:600;letter-spacing:.15em;color:var(--color-text-dim);text-transform:uppercase;padding:0 12px;margin-bottom:8px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:6px;color:var(--color-text-muted);font-size:14px;transition:var(--transition)}.nav-item:hover,.nav-item.active{background:rgba(201,165,92,.1);color:var(--color-gold)}.nav-item svg{flex-shrink:0}.sidebar-footer{padding:16px;border-top:1px solid var(--color-border)}.user-info{display:flex;align-items:center;gap:12px;margin-bottom:12px}.user-avatar{width:36px;height:36px;background:var(--color-gold);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--color-bg)}.user-details{flex:1;overflow:hidden}.user-name{font-size:14px;font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:12px;color:var(--color-text-dim);text-transform:capitalize}.logout-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px;background:transparent;border:1px solid var(--color-border);border-radius:6px;color:var(--color-text-muted);font-size:13px;cursor:pointer;transition:var(--transition)}.logout-btn:hover{border-color:#ef4444;color:#ef4444}.portal-main{flex:1;margin-left:260px;padding:32px}.portal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.portal-header h1{font-family:var(--font-heading);font-size:28px;font-weight:400}.header-actions{display:flex;gap:12px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:32px}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;padding:24px}.stat-label{font-size:12px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.stat-value{font-size:32px;font-weight:600;color:var(--color-text)}.stat-change{font-size:13px;margin-top:4px}.stat-change.positive{color:#22c55e}.stat-change.negative{color:#ef4444}.content-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:8px;margin-bottom:24px}.card-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border)}.card-header h2{font-family:var(--font-heading);font-size:20px;font-weight:400}.card-actions{display:flex;gap:8px}.btn-sm{padding:8px 16px;font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;border-radius:4px;cursor:pointer;transition:var(--transition)}.btn-primary{background:var(--color-gold);color:var(--color-bg);border:none}.btn-primary:hover{background:var(--color-gold-hover)}.btn-secondary{background:transparent;color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{border-color:var(--color-gold)}.card-body{padding:24px}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:14px 16px;text-align:left;font-size:14px}.data-table th{font-weight:500;color:var(--color-text-muted);text-transform:uppercase;font-size:11px;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.data-table td{color:var(--color-text);border-bottom:1px solid var(--color-border)}.data-table tr:last-child td{border-bottom:none}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.status-badge::before{content:'';width:6px;height:6px;border-radius:50%}.status-badge.pending{background:rgba(234,179,8,.1);color:#eab308}.status-badge.pending::before{background:#eab308}.status-badge.approved{background:rgba(34,197,94,.1);color:#22c55e}.status-badge.approved::before{background:#22c55e}.status-badge.rejected{background:rgba(239,68,68,.1);color:#ef4444}.status-badge.rejected::before{background:#ef4444}.empty-state{text-align:center;padding:60px 24px}.empty-state-icon{width:64px;height:64px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:50%;color:var(--color-text-dim)}.empty-state h3{font-family:var(--font-heading);font-size:20px;font-weight:400;margin-bottom:8px}.empty-state p{font-size:14px;color:var(--color-text-muted)}@media(max-width:1024px){.portal-sidebar{width:200px}.portal-main{margin-left:200px}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.portal-sidebar{transform:translateX(-100%);transition:transform .3s ease}.portal-sidebar.open{transform:translateX(0)}.portal-main{margin-left:0;padding:20px}.stats-grid{grid-template-columns:1fr}.data-table{display:block;overflow-x:auto}}
