:root{--ink:#122033;--muted:#6b7788;--line:#e5e9ef;--bg:#f5f7fb;--card:#fff;--brand:#0b6bcb;--brand2:#0a4f9e;--green:#16834b;--amber:#a66a00;--red:#b42318}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input{font:inherit}button{cursor:pointer}.auth-body{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#eef5ff,#f8fafc)}.auth-shell{width:min(100%,470px)}.auth-brand{display:flex;align-items:center;gap:12px;margin:0 0 18px 4px}.auth-brand strong{display:block;letter-spacing:2px}.auth-brand span{display:block;font-size:11px;color:var(--muted);letter-spacing:1.4px;margin-top:3px}.brand-mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--brand);color:#fff;font-size:25px;font-weight:800;box-shadow:0 10px 25px #0b6bcb33}.auth-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 18px 55px #15233d12}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#f3f6fa;padding:4px;border-radius:12px;margin-bottom:22px}.tab{border:0;background:transparent;padding:11px;border-radius:9px;color:var(--muted);font-weight:700}.tab.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px #0000000d}.auth-card h1{font-size:27px;margin:0 0 7px}.muted{color:var(--muted);line-height:1.55}.auth-card label{display:block;font-size:13px;font-weight:700;margin:17px 0 7px}.auth-card input{width:100%;border:1px solid #d8dee8;border-radius:10px;padding:12px 13px;outline:none}.auth-card input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #0b6bcb14}.primary{background:var(--brand);color:#fff;border:0;border-radius:10px;padding:12px 16px;font-weight:800}.primary:hover{background:var(--brand2)}.full{width:100%;margin-top:20px}.link-button{border:0;background:none;color:var(--brand);font-weight:700;margin:14px auto 0;display:block}.tiny,.footer-note{font-size:12px;color:var(--muted);line-height:1.5}.footer-note{text-align:center;margin:14px 0}.message{border-radius:10px;padding:11px 12px;margin-bottom:16px;font-size:13px;line-height:1.45}.message.success{background:#eaf8f0;color:#146c40}.message.error{background:#fff0ef;color:#9d1c12}.message.info{background:#edf5ff;color:#17599a}.portal-body{background:#f4f6f9}.app{display:flex;min-height:100vh}aside{width:245px;background:#10243c;color:#d9e4f0;position:fixed;inset:0 auto 0 0;padding:22px 14px;display:flex;flex-direction:column;z-index:10}.brand{padding:2px 14px 24px}.brand b{font-size:19px;letter-spacing:2px;color:#fff}.brand small{display:block;font-size:10px;letter-spacing:1.5px;color:#9fb1c6;margin-top:5px}nav{display:grid;gap:4px}nav a,.bottom a{padding:11px 13px;border-radius:9px;color:#c9d6e5;text-decoration:none;cursor:pointer;font-size:14px}nav a:hover,.bottom a:hover,nav a.active{background:#ffffff12;color:#fff}.bottom{margin-top:auto;display:grid;gap:4px;border-top:1px solid #ffffff12;padding-top:14px}main{margin-left:245px;width:calc(100% - 245px);min-height:100vh}header{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:15px;position:sticky;top:0;z-index:5}.user{margin-left:auto;color:#5d6b7c;font-size:13px}.hamb{display:none;border:0;background:#eef3f8;border-radius:8px;padding:7px 10px}#content{padding:28px}.hero{background:linear-gradient(115deg,#0d63b9,#1b7ad0);color:#fff;border-radius:18px;padding:27px;display:flex;align-items:center;justify-content:space-between;gap:20px;box-shadow:0 14px 35px #0b6bcb24}.hero h1{margin:0 0 7px;font-size:25px}.hero p{margin:0;opacity:.9}.hero button{background:#fff;color:#0b5aa9;border:0;border-radius:10px;padding:12px 16px;font-weight:800}.section{display:flex;justify-content:space-between;align-items:center;margin:25px 0 12px}.section h2{margin:0;font-size:19px}.section p{margin:4px 0 0;color:var(--muted);font-size:13px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.card,.panel,.resource{background:#fff;border:1px solid var(--line);border-radius:14px}.card{padding:18px}.card small{color:var(--muted)}.num{font-size:28px;font-weight:800;margin:8px 0 10px}.badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.green{background:#e9f7ef;color:var(--green)}.amber{background:#fff4df;color:var(--amber)}.red{background:#ffebe9;color:var(--red)}.blue{background:#eaf3ff;color:#155ca2}.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.panel{padding:18px}.panel h3{margin-top:0}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:12px 9px;border-bottom:1px solid var(--line);vertical-align:top}.table th{color:#697688;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.actions button,.resource button{border:1px solid #d9e1eb;background:#fff;border-radius:9px;padding:11px;text-align:left}.actions button:hover,.resource button:hover{border-color:#9db6d2}.upload{border:2px dashed #cbd6e2;border-radius:12px;padding:45px 20px;text-align:center;color:#64758a}.upload span{font-size:30px;display:block;margin-bottom:7px}.resources{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.resource{padding:18px}.resource h3{margin:14px 0 7px}.resource p{color:var(--muted);font-size:13px;min-height:38px}.price{font-size:21px;font-weight:800;margin:14px 0}.resource button{width:100%;background:#0b6bcb;color:#fff;border-color:#0b6bcb;text-align:center;font-weight:800}.notice{padding:15px;border-bottom:1px solid var(--line)}.notice:last-child{border-bottom:0}.notice p{margin:6px 0;color:var(--muted)}.empty{text-align:center;padding:38px;color:var(--muted)}.empty b,.empty span{display:block}.empty b{color:var(--ink);margin-bottom:7px}.loading{padding:30px;text-align:center;color:var(--muted)}
@media(max-width:900px){aside{transform:translateX(-100%);transition:.2s}aside.open{transform:translateX(0)}main{margin-left:0;width:100%}.hamb{display:block}.cards{grid-template-columns:1fr 1fr}.grid,.resources{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column}#content{padding:18px}.table{min-width:620px}.panel{overflow:auto}}
@media(max-width:560px){.cards{grid-template-columns:1fr}.auth-card{padding:21px}.auth-body{padding:15px}}
.hero-link{background:#fff;color:#0b5aa9;text-decoration:none;border-radius:10px;padding:12px 16px;font-weight:800;white-space:nowrap}.text-link{color:var(--brand);text-decoration:none;font-size:13px;font-weight:800}.action-button{display:block;border:1px solid #d9e1eb;background:#fff;border-radius:9px;padding:11px;text-decoration:none;color:var(--ink);font-weight:700}.calendar-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.calendar-head h1{margin:0 0 6px;font-size:27px}.calendar-head p{margin:0;color:var(--muted);max-width:760px}.calendar-links{display:flex;gap:8px;flex-wrap:wrap}.calendar-links a{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 12px;text-decoration:none;color:var(--brand);font-weight:800;font-size:12px}.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.filter{border:1px solid #d9e1eb;background:#fff;border-radius:999px;padding:8px 13px;color:var(--muted);font-weight:800}.filter.active{background:#0b6bcb;color:#fff;border-color:#0b6bcb}.table-wrap{overflow:auto}.source-note{margin-top:14px;background:#eef5ff;border:1px solid #d9e8fa;border-radius:12px;padding:13px 15px;color:#415a73;font-size:12px;line-height:1.6}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-panel label{display:block;font-size:12px;font-weight:800;margin-bottom:6px}.admin-panel input,.admin-panel select,.admin-panel textarea{width:100%;border:1px solid #d8dee8;border-radius:9px;padding:10px 11px;outline:none}.admin-panel textarea{min-height:90px;resize:vertical}.admin-panel .full-row{grid-column:1/-1}.admin-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.danger{background:#fff0ef;color:#a51d13;border:1px solid #f3c5c1;border-radius:8px;padding:8px 10px;font-weight:800}.success{background:#e9f7ef;color:#146c40}.admin-table{max-height:460px;overflow:auto}.pill{font-size:11px;border-radius:999px;padding:4px 8px;background:#eef3f8;color:#52667b;font-weight:800}@media(max-width:900px){.calendar-head,.admin-grid{grid-template-columns:1fr;display:grid}.form-grid{grid-template-columns:1fr}.calendar-links{justify-content:flex-start}}

.task-status{border:1px solid #d8dee8;border-radius:8px;padding:7px 9px;background:#fff;color:#26384d}.table-wrap{overflow:auto}

/* Smartfile official logo branding */
.auth-brand{display:flex;justify-content:center;align-items:center;margin:0 auto 18px;padding:0;}
.auth-logo{display:block;width:min(280px,78vw);height:auto;max-height:170px;object-fit:contain;}
.brand{padding:2px 10px 22px;text-align:center;}
.portal-brand-logo{display:block;width:128px;height:auto;max-height:125px;object-fit:contain;margin:0 auto 8px;border-radius:0;}
.brand small{display:block;text-align:center;font-size:10px;letter-spacing:1.5px;color:#9fb1c6;margin-top:0;}
@media(max-width:720px){.auth-logo{width:min(245px,70vw)}.portal-brand-logo{width:105px;max-height:105px}}


/* ===== Smartfile premium client-login branding ===== */
.auth-body{position:relative;overflow-x:hidden;display:block;min-height:100vh;padding:28px 34px 20px;background:linear-gradient(135deg,#f4f9ff 0%,#ffffff 48%,#eef7ff 100%);}
.auth-background-shape{position:absolute;pointer-events:none;z-index:0;border-radius:50%;filter:blur(1px);opacity:.75}
.auth-shape-left{width:760px;height:420px;left:-300px;top:70px;background:radial-gradient(ellipse at center,rgba(64,143,226,.18),rgba(64,143,226,0) 70%);transform:rotate(-16deg)}
.auth-shape-right{width:900px;height:520px;right:-360px;bottom:-140px;background:radial-gradient(ellipse at center,rgba(49,139,218,.16),rgba(49,139,218,0) 68%);transform:rotate(14deg)}
.auth-shell{position:relative;z-index:1;width:min(1480px,100%);margin:0 auto}
.auth-topbar{display:flex;align-items:flex-start;justify-content:center;position:relative;min-height:205px}
.auth-brand{display:flex;justify-content:center;align-items:center;margin:0;padding:0}
.auth-logo{display:block;width:210px;height:165px;object-fit:contain;object-position:center;mix-blend-mode:multiply}
.secure-badge{position:absolute;right:12px;top:8px;display:flex;align-items:flex-start;gap:9px;color:#244d77;font-size:13px}
.secure-badge strong{display:block;font-size:14px}.secure-badge small{display:block;margin-top:3px;color:#617993;font-size:11px}.secure-dot{font-size:17px}
.auth-layout{display:grid;grid-template-columns:minmax(250px,1fr) minmax(470px,540px) minmax(250px,1fr);gap:28px;align-items:center;min-height:610px}
.auth-promo{min-height:440px;display:flex;flex-direction:column;justify-content:center}
.auth-promo-left{padding:20px 20px 20px 26px}.eyebrow{font-size:10px;letter-spacing:2px;color:#5f7892;font-weight:800;margin:0 0 18px}.auth-promo-left h2{font-size:38px;line-height:1.18;color:#173f6d;margin:0;font-weight:800;letter-spacing:-.8px}.promo-line{width:76px;height:3px;background:#0b6bcb;border-radius:3px;margin:20px 0}.promo-services{color:#526b84;font-size:14px;white-space:nowrap;margin:0}.promo-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:42px;max-width:520px}.promo-icons span{text-align:center;color:#49647d}.promo-icons b{width:48px;height:48px;margin:0 auto 8px;display:grid;place-items:center;border-radius:50%;background:rgba(220,235,249,.72);font-size:21px;color:#17558e}.promo-icons small{font-size:10px;display:block;line-height:1.25}
.auth-center{display:flex;justify-content:center}.auth-card{width:100%;background:rgba(255,255,255,.96);border:1px solid rgba(215,225,236,.9);border-radius:24px;padding:30px;box-shadow:0 24px 65px rgba(32,69,108,.13);backdrop-filter:blur(8px)}
.auth-tabs{margin-bottom:24px}.auth-card h1{font-size:29px}.auth-card input{background:#f8fbff;padding:14px 14px;border-radius:11px}.primary{background:#0b70cf;border-radius:11px;padding:14px 16px}.full{margin-top:21px}
.auth-promo-right{position:relative;overflow:hidden;border-radius:28px}.finance-art{position:absolute;inset:0;background:linear-gradient(135deg,rgba(232,243,253,.7),rgba(255,255,255,.05));border-radius:28px;opacity:.92}.calculator{position:absolute;right:-45px;top:40px;width:220px;height:300px;border-radius:28px;transform:rotate(22deg);background:linear-gradient(160deg,#dbe7f1,#ffffff);box-shadow:0 20px 45px rgba(53,84,113,.14);padding:42px 28px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.calculator:before{content:'';position:absolute;left:28px;right:28px;top:24px;height:38px;border-radius:8px;background:#edf4f9}.calculator i{display:block;border-radius:50%;background:#d6e3ee}.chart{position:absolute;right:70px;bottom:125px;width:210px;height:130px;display:flex;align-items:flex-end;gap:12px;transform:rotate(-4deg);opacity:.65}.chart span{display:block;width:28px;border-radius:5px 5px 0 0;background:linear-gradient(#4b9de2,#86c7ee)}.chart span:nth-child(1){height:42px}.chart span:nth-child(2){height:70px}.chart span:nth-child(3){height:96px}.chart span:nth-child(4){height:120px}.pen{position:absolute;width:220px;height:10px;right:110px;bottom:105px;background:linear-gradient(90deg,#163f67,#5e7890);border-radius:10px;transform:rotate(-32deg);box-shadow:0 7px 12px rgba(20,57,88,.2)}
.growth-message{position:absolute;right:24px;bottom:30px;color:#153d67;text-align:center;transform:rotate(-3deg)}.growth-message strong{display:block;font-size:34px;font-weight:500;font-style:italic;font-family:cursive}.growth-message span{display:block;font-size:28px;font-weight:500;font-style:italic;font-family:cursive}.growth-message div{height:2px;width:180px;background:#173f6d;margin:9px auto 0;border-radius:50%}
.footer-note{position:relative;z-index:2;margin:5px 0 0;text-align:center;font-size:12px;color:#60758b}
/* Use the same official logo in portal/admin sidebars. */
.brand{padding:2px 8px 20px;text-align:center}.portal-brand-logo{width:142px;max-height:145px;background:#fff;padding:5px;border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.12);margin:0 auto 8px}.brand small{font-size:10px;letter-spacing:1.6px;text-align:center}
@media(max-width:1150px){.auth-layout{grid-template-columns:220px minmax(430px,520px) 220px;gap:15px}.auth-promo-left h2{font-size:31px}.promo-services{font-size:12px}.promo-icons{gap:7px}.auth-logo{width:190px}}
@media(max-width:900px){.auth-body{padding:20px 15px}.auth-topbar{min-height:165px}.secure-badge{display:none}.auth-layout{grid-template-columns:1fr;min-height:0}.auth-promo-left{display:none}.auth-promo-right{display:none}.auth-card{max-width:540px}.auth-center{width:100%}.auth-logo{width:190px;height:145px}}
@media(max-width:560px){.auth-topbar{min-height:135px}.auth-logo{width:165px;height:125px}.auth-card{padding:21px;border-radius:19px}.auth-card h1{font-size:25px}.footer-note{font-size:11px}}


/* Smartfile premium night-sky client login */
.auth-body{background:#020814;min-height:100vh;overflow-x:hidden;color:#eef6ff;position:relative;isolation:isolate}
.auth-night-sky{position:fixed;inset:0;z-index:-2;overflow:hidden;background:radial-gradient(circle at 50% 18%,rgba(32,79,146,.28),transparent 34%),radial-gradient(circle at 85% 70%,rgba(18,57,111,.24),transparent 36%),linear-gradient(180deg,#020714 0%,#06152a 50%,#020713 100%)}
.auth-night-sky:before{content:"";position:absolute;inset:-20%;background:radial-gradient(ellipse at 55% 48%,rgba(98,145,213,.12),transparent 22%),radial-gradient(ellipse at 42% 55%,rgba(255,255,255,.06),transparent 35%);filter:blur(18px);transform:rotate(-12deg)}
.stars{position:absolute;inset:-10%;display:block;background-repeat:repeat;animation:sfNightDrift 55s linear infinite}
.stars-a{background-image:radial-gradient(circle,rgba(255,255,255,.95) 0 1px,transparent 1.5px);background-size:125px 125px;opacity:.72}
.stars-b{background-image:radial-gradient(circle,rgba(128,190,255,.85) 0 1px,transparent 1.7px);background-size:205px 205px;opacity:.42;animation-duration:80s;animation-direction:reverse}
.stars-c{background-image:radial-gradient(circle,rgba(255,255,255,.8) 0 .8px,transparent 1.4px);background-size:285px 285px;opacity:.34;animation-duration:105s}
.moon-glow{position:absolute;width:260px;height:260px;right:10%;top:8%;border-radius:50%;background:radial-gradient(circle,rgba(118,175,255,.18),rgba(118,175,255,.03) 48%,transparent 70%);filter:blur(1px)}
.moon-glow:after{content:"";position:absolute;width:70px;height:70px;right:75px;top:65px;border-radius:50%;background:#d9ecff;box-shadow:0 0 45px rgba(169,214,255,.55)}
.mountain-silhouette{position:absolute;left:-5%;right:-5%;bottom:-2px;height:180px;background:linear-gradient(135deg,transparent 0 15%,#01050d 15% 22%,transparent 22% 31%,#01050d 31% 43%,transparent 43% 51%,#01050d 51% 62%,transparent 62% 70%,#01050d 70% 82%,transparent 82%),linear-gradient(180deg,transparent 0%,#01050d 72%);opacity:.9;clip-path:polygon(0 72%,8% 56%,15% 67%,23% 42%,31% 61%,39% 48%,47% 68%,55% 39%,63% 62%,72% 48%,81% 65%,89% 44%,100% 60%,100% 100%,0 100%)}
.auth-shell{position:relative;z-index:2;width:min(1480px,100%);margin:0 auto}
.auth-topbar{min-height:215px}
.auth-logo{filter:drop-shadow(0 14px 30px rgba(0,0,0,.45));mix-blend-mode:normal;background:rgba(255,255,255,.94);border-radius:22px;padding:8px;box-shadow:0 18px 50px rgba(0,0,0,.32)}
.secure-badge{color:#dbeeff}.secure-badge strong{color:#fff}.secure-badge small{color:#9fbfe0}
.auth-promo-left h2{color:#fff;text-shadow:0 8px 28px rgba(0,0,0,.45)}
.auth-promo-left .eyebrow{color:#79baff}.promo-services{color:#c0d7ee}.promo-icons span{color:#c9dced}.promo-icons b{background:rgba(53,104,158,.28);color:#80c4ff;border:1px solid rgba(143,197,255,.16)}
.auth-card{background:rgba(7,20,38,.78);border:1px solid rgba(157,204,255,.2);box-shadow:0 28px 80px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(18px);color:#f5f9ff}
.auth-tabs{background:rgba(255,255,255,.07)}.tab{color:#a9bfd7}.tab.active{background:linear-gradient(180deg,#63b4ff,#1588ee);color:#fff;box-shadow:0 8px 24px rgba(25,137,238,.3)}
.auth-card h1{color:#fff}.auth-card .muted{color:#a9bfd7}.auth-card label{color:#dceafb}.auth-card input{background:rgba(3,13,26,.72);border-color:rgba(151,195,237,.25);color:#fff}.auth-card input::placeholder{color:#7891aa}.auth-card input:focus{border-color:#48a8ff;box-shadow:0 0 0 3px rgba(72,168,255,.15)}
.primary{background:linear-gradient(90deg,#138bf0,#29a8ff);box-shadow:0 12px 28px rgba(19,139,240,.3)}.primary:hover{background:linear-gradient(90deg,#29a8ff,#138bf0)}.link-button{color:#72c0ff}.tiny,.footer-note{color:#8ea8c0}.footer-note{position:relative;z-index:2}
.auth-promo-right{background:radial-gradient(circle at 60% 30%,rgba(42,113,183,.16),transparent 48%)}.finance-art{background:linear-gradient(135deg,rgba(13,40,68,.25),rgba(255,255,255,.02))}.calculator{opacity:.18}.chart{opacity:.25}.pen{opacity:.25}.growth-message{color:#dbeeff}
.client-portal-strip{background:linear-gradient(135deg,#061a32,#0a3158);color:#fff;border-top:1px solid rgba(91,163,235,.18);border-bottom:1px solid rgba(91,163,235,.18);padding:30px 20px}.client-portal-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.client-portal-kicker{font-size:11px;letter-spacing:2px;color:#78bfff;font-weight:800}.client-portal-inner h2{margin:6px 0 5px;font-size:26px}.client-portal-inner p{margin:0;color:#b9cfe4}.client-portal-inner .btn{flex-shrink:0}
@keyframes sfNightDrift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-35px,22px,0)}}
@media(max-width:900px){.auth-body{padding:15px}.auth-topbar{min-height:160px}.auth-layout{grid-template-columns:1fr;min-height:0}.auth-promo-left{display:none}.auth-promo-right{display:none}.auth-logo{width:190px;height:145px}.auth-card{max-width:540px;margin:0 auto}.client-portal-inner{flex-direction:column;align-items:flex-start}.client-portal-inner .btn{width:100%;text-align:center}}
@media(max-width:560px){.auth-topbar{min-height:135px}.auth-logo{width:165px;height:125px}.auth-card{padding:20px;border-radius:19px}.auth-card h1{font-size:24px}.auth-card input{padding:13px}.primary{padding:13px}.footer-note{font-size:10px}.client-portal-strip{padding:24px 16px}.client-portal-inner h2{font-size:22px}.client-portal-inner p{font-size:13px}.moon-glow{right:-70px;top:0}.stars{inset:-20%}}
@media(prefers-reduced-motion:reduce){.stars{animation:none}}
