@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800;900&display=swap";:root{--portal-primary: #6366f1;--portal-primary-hover: #4f46e5;--portal-primary-glow: rgba(99, 102, 241, .35);--portal-secondary: #10b981;--portal-coral: #ef4444;--portal-amber: #f59e0b;--portal-blue: #3b82f6;--portal-bg: #f1f5f9;--portal-bg-gradient: radial-gradient(circle at 10% 10%, #ffffff 0%, #f1f5f9 60%, #e0e7ff 100%);--portal-card-bg: #ffffff;--portal-card-border: #e2e8f0;--portal-glass-border: rgba(15, 23, 42, .08);--portal-text-main: #0f172a;--portal-text-muted: #64748b;--portal-input-bg: #f8fafc;--portal-sidebar-bg: #ffffff;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .05), 0 1px 2px rgba(15, 23, 42, .03);--shadow-md: 0 10px 25px -5px rgba(15, 23, 42, .06), 0 4px 6px -2px rgba(15, 23, 42, .03);--shadow-lg: 0 20px 40px -10px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .04);--shadow-glow: 0 0 25px var(--portal-primary-glow);--radius-xl: 20px;--radius-lg: 14px;--radius-md: 10px;--radius-sm: 6px;--font-main: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif}[data-theme=dark]{--portal-bg: #080914;--portal-bg-gradient: radial-gradient(circle at 20% 15%, #101227 0%, #080914 55%, #04050a 100%);--portal-card-bg: rgba(18, 20, 38, .85);--portal-card-border: rgba(255, 255, 255, .09);--portal-glass-border: rgba(255, 255, 255, .08);--portal-text-main: #f8fafc;--portal-text-muted: #94a3b8;--portal-input-bg: rgba(255, 255, 255, .04);--portal-sidebar-bg: rgba(13, 15, 29, .95);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .4);--shadow-md: 0 16px 40px rgba(0, 0, 0, .6);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .8)}*,*:before,*:after{box-sizing:border-box}body.portal-body{background:var(--portal-bg-gradient);background-attachment:fixed;margin:0;padding:0;height:100vh;width:100vw;display:flex;font-family:var(--font-main);color:var(--portal-text-main);overflow:hidden;-webkit-font-smoothing:antialiased}#authScreen.auth-screen{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;height:100vh!important;z-index:999999!important;display:flex!important;align-items:center!important;justify-content:center!important;background:radial-gradient(circle at 15% 15%,#11132a,#080914 55%,#04050a)!important;overflow:hidden!important}#authScreen:not(.active){display:none!important}.auth-screen .auth-orb{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none}.auth-screen .auth-orb-1{width:600px;height:600px;background:radial-gradient(circle,rgba(99,102,241,.3) 0%,transparent 70%);top:-200px;left:-200px;animation:authOrbFloat 14s ease-in-out infinite alternate}.auth-screen .auth-orb-2{width:500px;height:500px;background:radial-gradient(circle,rgba(16,185,129,.22) 0%,transparent 70%);bottom:-150px;right:-150px;animation:authOrbFloat 12s ease-in-out infinite alternate-reverse}@keyframes authOrbFloat{0%{transform:translate(0) scale(1)}50%{transform:translate(60px,-40px) scale(1.1)}to{transform:translate(-30px,30px) scale(.95)}}.auth-card{position:relative;z-index:2;background:#0e1020d9;backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);border:1px solid rgba(255,255,255,.12);padding:3.5rem 2.75rem;border-radius:var(--radius-xl);box-shadow:0 32px 80px -16px #000000d9,0 0 0 1px #6366f140,inset 0 1px #ffffff1a;text-align:center;max-width:440px;width:90%;color:#f8fafc;animation:authCardIn .6s cubic-bezier(.16,1,.3,1) both}@keyframes authCardIn{0%{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-icon{width:38px;height:38px;color:#fff!important;background:linear-gradient(135deg,var(--portal-primary),#4338ca);padding:1.15rem;border-radius:20px;box-shadow:0 8px 24px var(--portal-primary-glow);margin-bottom:1.5rem;display:inline-flex;align-items:center;justify-content:center}.auth-card h2{font-family:var(--font-heading);font-size:1.8rem;margin:0 0 .5rem;font-weight:800;color:#fff;letter-spacing:-.5px}.auth-card p{color:#94a3b8e6;font-size:.93rem;line-height:1.5;margin-bottom:1.75rem}.auth-card .form-control{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#f8fafc;border-radius:var(--radius-md);padding:.9rem 1.15rem;font-size:.95rem;font-family:var(--font-main);transition:all .2s cubic-bezier(.4,0,.2,1);box-sizing:border-box}.auth-card .form-control:focus{border-color:var(--portal-primary);background:#6366f114;box-shadow:0 0 0 4px var(--portal-primary-glow);outline:none}.auth-card .form-control::placeholder{color:#94a3b899}.btn-portal-primary{background:linear-gradient(135deg,var(--portal-primary),var(--portal-primary-hover));color:#fff;border:none;border-radius:var(--radius-md);padding:.9rem 1.6rem;font-weight:700;font-family:var(--font-heading);font-size:.95rem;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:.6rem;box-shadow:0 4px 16px var(--portal-primary-glow);text-decoration:none}.btn-portal-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--portal-primary-glow);filter:brightness(1.08)}.btn-portal-secondary{background:#ffffff0a;border:1px solid var(--portal-card-border);color:var(--portal-text-main);border-radius:var(--radius-md);padding:.75rem 1.25rem;font-family:var(--font-heading);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-portal-secondary:hover{background:#6366f114;color:var(--portal-primary);border-color:#6366f14d}.otp-step-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1.5rem}.step-dot{width:10px;height:10px;border-radius:50%;background:#fff3;transition:all .3s ease}.step-dot.active{background:var(--portal-primary);box-shadow:0 0 10px var(--portal-primary);transform:scale(1.2)}#portalDashboard{width:100vw;height:100vh;overflow:hidden}.portal-layout{display:flex;width:100%;height:100%}.portal-sidebar{width:285px;background:var(--portal-sidebar-bg);color:var(--portal-text-main);display:flex;flex-direction:column;border-right:1px solid var(--portal-card-border);z-index:20;box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.4,0,.2,1)}.portal-brand{height:80px;display:flex;align-items:center;padding:0 1.75rem;font-size:1.3rem;border-bottom:1px solid var(--portal-card-border);gap:.75rem;color:var(--portal-primary)}.portal-brand span{font-family:var(--font-heading);font-weight:800;letter-spacing:-.5px;color:var(--portal-text-main)}.client-identity{padding:2.25rem 1.5rem;text-align:center;border-bottom:1px solid var(--portal-card-border);position:relative;overflow:hidden}.client-identity:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:170px;height:170px;background:radial-gradient(circle,rgba(99,102,241,.12) 0%,transparent 70%);z-index:0}.client-avatar{width:82px;height:82px;border-radius:50%;background:linear-gradient(135deg,var(--portal-primary),#4338ca);color:#fff;font-family:var(--font-heading);font-size:2.25rem;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;position:relative;z-index:1;box-shadow:0 8px 24px var(--portal-primary-glow);border:3px solid var(--portal-sidebar-bg)}.client-identity .ngo-name{font-family:var(--font-heading);font-weight:800;font-size:1.15rem;color:var(--portal-text-main);margin-bottom:.25rem;position:relative;z-index:1}.client-identity .contact-name{font-size:.85rem;color:var(--portal-text-muted);position:relative;z-index:1}.portal-nav{padding:1.25rem 1rem;display:flex;flex-direction:column;gap:.4rem;flex:1}.portal-nav-item{display:flex;align-items:center;gap:.875rem;padding:.875rem 1.25rem;border-radius:var(--radius-md);color:var(--portal-text-muted);text-decoration:none;font-weight:500;font-size:.93rem;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.portal-nav-item i{width:18px;height:18px}.portal-nav-item:hover{color:var(--portal-primary);background:#6366f10f;transform:translate(4px)}.portal-nav-item.active{color:var(--portal-primary);font-weight:700;background:#6366f11a;border:1px solid rgba(99,102,241,.22)}.portal-nav-item.active:before{content:"";position:absolute;left:0;top:15%;bottom:15%;width:4px;background:var(--portal-primary);border-radius:0 4px 4px 0}.portal-main{flex:1;overflow-y:auto;padding:2.5rem 3.5rem;background:transparent;position:relative}.portal-page-title{font-family:var(--font-heading);font-size:2.1rem;font-weight:800;color:var(--portal-text-main);margin:0 0 2rem;letter-spacing:-.5px}.portal-tab-content{display:none;animation:slideUpFade .4s cubic-bezier(.16,1,.3,1) forwards}.portal-tab-content.active{display:block}@keyframes slideUpFade{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.portal-hero-banner{background:linear-gradient(135deg,#6366f124,#10b98114);border:1px solid rgba(99,102,241,.25);border-radius:var(--radius-xl);padding:2.25rem 2.5rem;margin-bottom:2rem;position:relative;overflow:hidden;box-shadow:var(--shadow-md)}.portal-hero-banner h2{font-family:var(--font-heading);font-size:1.65rem;font-weight:800;margin:0 0 .5rem;color:var(--portal-text-main)}.portal-hero-banner p{color:var(--portal-text-muted);font-size:.95rem;margin:0 0 1.5rem;max-width:620px;line-height:1.5}.portal-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:2rem;margin-bottom:2rem}.portal-card{background:var(--portal-card-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-xl);padding:2rem;border:1px solid var(--portal-card-border);box-shadow:var(--shadow-md);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}.portal-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#6366f14d}.portal-card h3{margin-top:0;margin-bottom:1.25rem;font-family:var(--font-heading);font-size:1.2rem;font-weight:700;color:var(--portal-text-main);display:flex;align-items:center;gap:.6rem}.status-badge{padding:.4rem .95rem;border-radius:30px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;display:inline-flex;align-items:center;gap:.35rem}.status-paid{background:#10b9811f;color:var(--portal-secondary);border:1px solid rgba(16,185,129,.3)}.status-progress{background:#3b82f61f;color:var(--portal-blue);border:1px solid rgba(59,130,246,.3)}.status-unpaid{background:#ef44441f;color:var(--portal-coral);border:1px solid rgba(239,68,68,.3)}.portal-progress-track{width:100%;height:10px;background:#94a3b82e;border-radius:20px;overflow:hidden;margin:.75rem 0}.portal-progress-bar{height:100%;background:linear-gradient(90deg,var(--portal-primary),var(--portal-secondary));border-radius:20px;transition:width .8s cubic-bezier(.16,1,.3,1)}.portal-billing-grid{display:grid;grid-template-columns:2.2fr 1fr;gap:2rem;align-items:center}.portal-billing-info-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.25rem}.chat-container{background:var(--portal-card-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:var(--radius-xl);border:1px solid var(--portal-card-border);display:flex;flex-direction:column;height:calc(100vh - 170px);box-shadow:var(--shadow-lg);overflow:hidden}.chat-header{padding:1.25rem 2rem;background:#00000005;border-bottom:1px solid var(--portal-card-border);display:flex;align-items:center;gap:1rem}.chat-header-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--portal-primary),#4338ca);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-family:var(--font-heading)}.chat-header-info h3{margin:0 0 .2rem;font-family:var(--font-heading);font-size:1.1rem;color:var(--portal-text-main)}.chat-header-info p{margin:0;font-size:.82rem;color:var(--portal-secondary);font-weight:600;display:flex;align-items:center;gap:.35rem}.chat-header-info p:before{content:"";display:inline-block;width:8px;height:8px;background:var(--portal-secondary);border-radius:50%;box-shadow:0 0 8px var(--portal-secondary)}.chat-messages{flex:1;padding:2rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.chat-msg{max-width:65%;padding:1rem 1.35rem;border-radius:18px;font-size:.95rem;line-height:1.5;box-shadow:var(--shadow-sm);animation:popIn .3s cubic-bezier(.16,1,.3,1) forwards}@keyframes popIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.chat-msg.client{background:linear-gradient(135deg,var(--portal-primary),var(--portal-primary-hover));color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.chat-msg.agency{background:#ffffff12;border:1px solid var(--portal-card-border);color:var(--portal-text-main);align-self:flex-start;border-bottom-left-radius:4px}.chat-msg .time{font-size:.72rem;opacity:.75;margin-top:.4rem;display:block;text-align:right}.chat-input-area{padding:1.25rem 2rem;background:#00000005;border-top:1px solid var(--portal-card-border);display:flex;gap:1rem;align-items:center}.chat-input-area input{flex:1;padding:.9rem 1.5rem;border:1px solid var(--portal-card-border);border-radius:30px;font-family:inherit;background:var(--portal-input-bg);color:var(--portal-text-main);font-size:.95rem;transition:all .2s}.chat-input-area input:focus{outline:none;border-color:var(--portal-primary);box-shadow:0 0 0 4px var(--portal-primary-glow)}.chat-input-area button{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--portal-primary),var(--portal-primary-hover));color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .25s;box-shadow:0 4px 12px var(--portal-primary-glow)}.chat-input-area button:hover{transform:scale(1.06)}.client-task-list{display:flex;flex-direction:column;gap:1rem}.client-task-item{padding:1.25rem 1.5rem;border:1px solid var(--portal-card-border);border-radius:var(--radius-lg);display:flex;justify-content:space-between;align-items:center;background:var(--portal-card-bg);transition:all .25s cubic-bezier(.4,0,.2,1);border-left:4px solid var(--portal-primary)}.client-task-item:hover{box-shadow:var(--shadow-md);transform:translate(6px);border-color:#6366f14d}.asset-upload-zone{border:2px dashed rgba(99,102,241,.3);border-radius:var(--radius-xl);padding:3.5rem 2rem;text-align:center;background:#6366f105;transition:all .3s ease;cursor:pointer}.asset-upload-zone:hover{border-color:var(--portal-primary);background:#6366f10d;transform:scale(1.005)}@media(max-width:900px){.portal-sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%)}.portal-sidebar.mobile-open{transform:translate(0)}.portal-main{padding:1.5rem}.portal-topbar{display:flex!important;height:60px;background:var(--portal-sidebar-bg);border-bottom:1px solid var(--portal-card-border);padding:0 1.25rem;align-items:center}.portal-grid-2,.portal-billing-grid{grid-template-columns:1fr}}.modal.portal-modal{display:none!important;position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:99999!important;background:#080910bf!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);align-items:center!important;justify-content:center!important;padding:1.5rem!important;box-sizing:border-box!important}.modal.portal-modal.active{display:flex!important;animation:portalModalFadeIn .2s ease-out}.portal-modal .modal-content{background:var(--portal-sidebar-bg, #0e101f)!important;border:1px solid var(--portal-card-border, rgba(255, 255, 255, .12))!important;border-radius:16px!important;width:100%!important;max-width:520px!important;box-shadow:0 25px 60px #0009!important;overflow:hidden!important;position:relative!important;animation:portalModalPop .25s cubic-bezier(.16,1,.3,1)!important;padding:0!important}@keyframes portalModalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes portalModalPop{0%{transform:translateY(20px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.portal-modal .modal-header{display:flex!important;align-items:center!important;justify-content:space-between!important;padding:1.25rem 1.5rem!important;border-bottom:1px solid var(--portal-card-border, rgba(255, 255, 255, .08))!important}.portal-modal .modal-header h2{font-size:1.2rem!important;font-weight:700!important;margin:0!important;color:var(--portal-text-main, #fff)!important}.portal-modal .icon-btn{background:#ffffff0f!important;border:none!important;color:var(--portal-text-muted, #94a3b8)!important;cursor:pointer!important;width:32px!important;height:32px!important;border-radius:8px!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .2s!important}.portal-modal .icon-btn:hover{color:#fff!important;background:#ffffff26!important}.portal-modal .form-group{padding:1rem 1.5rem 0!important;display:flex!important;flex-direction:column!important;gap:.5rem!important}.portal-modal .form-group label{font-size:.82rem!important;font-weight:600!important;color:var(--portal-text-muted, #94a3b8)!important}.portal-modal .form-control{background:#0000004d!important;border:1px solid var(--portal-card-border, rgba(255, 255, 255, .12))!important;color:var(--portal-text-main, #fff)!important;border-radius:8px!important;padding:.75rem 1rem!important;font-family:inherit!important;font-size:.9rem!important;transition:border-color .2s,box-shadow .2s!important;box-sizing:border-box!important;width:100%!important}.portal-modal .form-control:focus{outline:none!important;border-color:var(--portal-primary, #6366f1)!important;box-shadow:0 0 0 3px #6366f140!important}.portal-modal .form-actions{padding:1.25rem 1.5rem!important;display:flex!important;gap:.75rem!important;justify-content:flex-end!important}
