/* Portal pages — same look as the main site (loaded after ../styles.css) */
html{background:#f7f9fc}
body{margin:0;background:#f7f9fc;color:#1e293b;font-family:'Work Sans',system-ui,sans-serif;min-height:100vh;position:relative;overflow-x:hidden}
.pbg{position:absolute;top:0;left:0;right:0;height:620px;z-index:0;pointer-events:none}
.pbg::before{content:'';position:absolute;inset:0;background:url('../hero-bg.avif') center/cover no-repeat;opacity:.5}
.pbg::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(219,234,254,.85) 0%,rgba(191,219,254,.65) 35%,#f7f9fc 100%)}
.nh-nav{z-index:100}
.pwrap{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:78px 24px 90px}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#0055FF;margin-bottom:12px}
.pwrap h1{font-family:'Manrope',system-ui,sans-serif;font-size:clamp(34px,5vw,60px);font-weight:800;line-height:.98;letter-spacing:-.05em;color:#0f172a;margin:0 0 14px;word-break:break-word}
.psub{font-size:clamp(16px,1.5vw,19px);color:#64748b;line-height:1.6;margin:0 0 34px;max-width:560px}
.pcard{background:#fff;border:1px solid #e2e8f0;border-radius:20px;padding:22px;box-shadow:0 4px 24px rgba(15,23,42,.06);margin-bottom:18px}
.pcard h2{font-family:'Manrope',system-ui,sans-serif;font-size:20px;font-weight:800;letter-spacing:-.02em;color:#0f172a;margin:0 0 16px}
.pbtn{display:inline-flex;align-items:center;justify-content:center;background:#0055FF;color:#fff;text-decoration:none;font:inherit;font-size:16px;font-weight:600;padding:12px 22px;border-radius:14px;border:0;cursor:pointer;box-shadow:0 4px 16px rgba(0,85,255,.28);transition:transform .2s,box-shadow .2s;white-space:nowrap}
.pbtn:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,85,255,.35)}

/* subscription banner */
.sublink{display:none;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 22px;border-radius:20px;background:#fff;border:1px solid #e2e8f0;border-left:5px solid #0055FF;box-shadow:0 4px 24px rgba(15,23,42,.06);margin-bottom:30px}
.sublink.warn{border-left-color:#f59e0b;background:#fffbeb}
.sublink.bad{border-left-color:#ef4444;background:#fef2f2}
.sublink b{font-family:'Manrope',system-ui,sans-serif;font-size:19px;font-weight:800;color:#0f172a;letter-spacing:-.02em}
.sublink span{display:block;color:#64748b;font-size:14px;margin-top:3px}

/* tabs */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.tab{padding:9px 17px;border-radius:100px;border:1.5px solid #dbe3ee;background:#fff;color:#475569;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .18s}
.tab:hover{border-color:#0055FF;color:#0055FF}
.tab.on{background:#0055FF;border-color:#0055FF;color:#fff;box-shadow:0 4px 14px rgba(0,85,255,.25)}

/* work log */
.day{margin-bottom:28px}
.day h2{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#64748b;margin:0 0 10px}
.item{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:17px 20px;margin-bottom:10px;box-shadow:0 2px 12px rgba(15,23,42,.04)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:7px}
.cat{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#0055FF}
.st{font-size:11px;font-weight:700;padding:3px 10px;border-radius:100px}
.st.done{background:#dcfce7;color:#15803d}
.st.in_progress{background:#fef3c7;color:#b45309}
.st.planned{background:#e2e8f0;color:#475569}
.item h3{font-size:17px;font-weight:700;color:#0f172a;margin:0}
.item p{color:#64748b;font-size:15px;line-height:1.6;margin:7px 0 0;white-space:pre-line}
.empty{color:#64748b;padding:34px 0;text-align:center}

/* admin form */
.pcard label{display:block;font-size:13px;font-weight:700;color:#334155;margin:0 0 6px}
.pcard input,.pcard select,.pcard textarea{width:100%;box-sizing:border-box;padding:11px 13px;border-radius:12px;border:1.5px solid #e2e8f0;background:#f8fafc;color:#0f172a;font:inherit;font-size:15px;outline:none}
.pcard input:focus,.pcard select:focus,.pcard textarea:focus{border-color:#0055FF;background:#fff}
.pcard textarea{min-height:84px;resize:vertical}
.g{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.full{grid-column:1/-1}
.it{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:13px 0;border-top:1px solid #eef2f7}
.it:first-child{border-top:0}
.it small{color:#64748b;font-size:13px}
.it b{font-size:15px;color:#0f172a}
.it p{color:#64748b;font-size:14px;margin:4px 0 0;white-space:pre-line}
.acts{white-space:nowrap}
.sbtn{padding:6px 12px;border-radius:9px;border:1.5px solid #dbe3ee;background:#fff;color:#334155;font:inherit;font-size:13px;font-weight:600;cursor:pointer;margin-left:6px}
.sbtn:hover{border-color:#0055FF;color:#0055FF}
.sbtn.del:hover{border-color:#ef4444;color:#ef4444}
.msg{font-size:14px;margin-left:12px;color:#15803d}

@media(max-width:768px){
  .nh-mob-btn{display:none!important}
  .nh-cta-nav{display:inline-block!important;position:absolute;right:0;top:14px;font-size:14px;padding:8px 14px}
  .pwrap{padding:40px 18px 70px}
  .g{grid-template-columns:1fr}
}

/* ── Portal v2: centered header, project banners, date carousel, checklist ── */
.phead{text-align:center}
.phead .ptitle{font-family:'Manrope',system-ui,sans-serif;font-size:clamp(38px,6vw,76px);font-weight:800;letter-spacing:-.05em;line-height:1;color:#0055FF;margin:0 0 14px}
.pwrap .phead h1{font-size:clamp(24px,3.2vw,38px);letter-spacing:-.03em;line-height:1.1;margin:0 0 10px}
.phead .psub{margin:0 auto 38px;text-align:center}
.sec-h{font-family:'Manrope',system-ui,sans-serif;font-size:22px;font-weight:800;letter-spacing:-.02em;color:#0f172a;margin:0 0 16px}
[hidden]{display:none!important}

.projs{display:flex;flex-direction:column;gap:16px}
.proj{position:relative;display:flex;align-items:stretch;width:100%;min-height:170px;padding:0;border:0;border-radius:24px;overflow:hidden;cursor:pointer;text-align:left;color:#fff;background:linear-gradient(135deg,#0055FF,#5b9bff) center/cover no-repeat;box-shadow:0 8px 30px rgba(15,23,42,.14);transition:transform .2s,box-shadow .2s;font:inherit}
.proj::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,20,60,.74) 0%,rgba(8,20,60,.32) 60%,rgba(8,20,60,.08) 100%)}
.proj:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(15,23,42,.22)}
.proj-in{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:30px 34px}
.proj-t{font-family:'Manrope',system-ui,sans-serif;font-weight:800;font-size:clamp(24px,3.4vw,40px);letter-spacing:-.03em;line-height:1.05}
.proj-s{font-size:14px;opacity:.85;margin-top:6px}
.proj-go{flex:0 0 48px;height:48px;border-radius:50%;background:rgba(255,255,255,.22);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;font-size:22px}

.back{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px;padding:9px 16px;border-radius:100px;border:1.5px solid #dbe3ee;background:#fff;color:#334155;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.back:hover{border-color:#0055FF;color:#0055FF}

.cal{display:flex;align-items:center;gap:10px;margin:0 0 28px}
.cal-strip{display:flex;gap:10px;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:8px 4px;flex:1}
.cal-strip::-webkit-scrollbar{display:none}
.cal-day{position:relative;flex:0 0 76px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:13px 0 16px;border-radius:18px;background:#fff;border:1.5px solid #e2e8f0;cursor:pointer;font:inherit;transition:border-color .15s,background .15s}
.cal-day:hover{border-color:#0055FF}
.cal-day small{font-size:11px;font-weight:700;text-transform:uppercase;color:#64748b;letter-spacing:.08em}
.cal-day b{font-family:'Manrope',system-ui,sans-serif;font-size:26px;font-weight:800;color:#0f172a;line-height:1.1}
.cal-day em{font-style:normal;font-size:11px;color:#94a3b8}
.cal-day.has::after{content:'';position:absolute;bottom:6px;width:6px;height:6px;border-radius:50%;background:#16a34a}
.cal-day.today{border-color:#0055FF}
.cal-day.on{background:#0055FF;border-color:#0055FF;box-shadow:0 6px 18px rgba(0,85,255,.3)}
.cal-day.on small,.cal-day.on b,.cal-day.on em{color:#fff}
.cal-day.on.has::after{background:#fff}
.cal-arrow{flex:0 0 44px;height:44px;border-radius:50%;border:1.5px solid #dbe3ee;background:#fff;cursor:pointer;font-size:20px;line-height:1;color:#334155}
.cal-arrow:hover{border-color:#0055FF;color:#0055FF}

.dayh{font-family:'Manrope',system-ui,sans-serif;font-size:24px;font-weight:800;letter-spacing:-.02em;color:#0f172a;margin:0 0 16px}
.chk{list-style:none;margin:0;padding:0}
.chk li{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:16px 18px;margin-bottom:10px;box-shadow:0 2px 12px rgba(15,23,42,.04)}
.tick{flex:0 0 28px;height:28px;border-radius:50%;background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;box-shadow:0 3px 10px rgba(22,163,74,.3)}
.tick.plan{background:#fff;border:2px solid #cbd5e1;color:#94a3b8;box-shadow:none}
.chk .txt{font-size:17px;color:#0f172a;line-height:1.45;padding-top:2px;white-space:pre-line}
.chk .plan-lbl{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;background:#e2e8f0;padding:3px 9px;border-radius:100px;white-space:nowrap}

/* admin extras */
.plist .pitem{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid #eef2f7}
.plist .pitem:first-child{border-top:0}
.pthumb{width:84px;height:52px;border-radius:10px;background:linear-gradient(135deg,#0055FF,#5b9bff) center/cover;flex:0 0 84px}
.pitem .pn{flex:1;font-weight:700;color:#0f172a}
.hint{font-size:13px;color:#64748b;margin:6px 0 0}
@media(max-width:768px){.proj-in{padding:24px 22px}.cal-day{flex-basis:66px}.cal-arrow{display:none}}

/* project view: hero card replaces the welcome text */
.hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:240px;margin:0 0 30px;border-radius:28px;overflow:hidden;background:linear-gradient(135deg,#0055FF,#5b9bff) center/cover no-repeat;box-shadow:0 12px 40px rgba(15,23,42,.18);text-align:center}
.hero::before{content:'';position:absolute;inset:0;background:rgba(8,20,60,.40)}
.hero-t{position:relative;color:#fff;font-family:'Manrope',system-ui,sans-serif;font-weight:800;font-size:clamp(40px,7vw,88px);letter-spacing:-.04em;line-height:1;padding:30px 80px;text-shadow:0 2px 24px rgba(0,0,0,.28);word-break:break-word}
.hero-back{position:absolute;top:18px;left:18px;z-index:2;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.26);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font-size:26px;line-height:1;cursor:pointer;transition:background .15s}
.hero-back:hover{background:rgba(255,255,255,.42)}
.pv .phead h1,.pv .phead .psub{display:none}
.pv .phead .ptitle{margin-bottom:30px}
@media(max-width:768px){.hero{min-height:190px}.hero-t{padding:26px 64px}}

/* ── v3: neutral banner overlays, bigger date carousel with animation ── */
.hero{min-height:200px}
.hero::before{background:linear-gradient(180deg,rgba(0,0,0,.20),rgba(0,0,0,.46))}
.hero-t{font-size:clamp(30px,4.6vw,58px);padding:26px 80px;letter-spacing:-.035em}
.proj::before{background:linear-gradient(90deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.22) 60%,rgba(0,0,0,.05) 100%)}

.cal{gap:12px}
.cal-strip{--u:110px;--g:10px;position:relative;align-items:center;gap:var(--g);scroll-behavior:auto;padding-top:8px;padding-bottom:8px;min-height:calc(var(--u)*1.6 + 16px)}
.cal-day{flex:0 0 auto;width:var(--u);height:var(--u);box-sizing:border-box;padding:0;justify-content:center;gap:calc(var(--u)*.03);border-radius:calc(var(--u)*.18);box-shadow:none;transition:width .4s cubic-bezier(.4,0,.2,1),height .4s cubic-bezier(.4,0,.2,1),background .25s,border-color .25s}
.cal-day small,.cal-day em{font-size:max(10px,calc(var(--u)*.11));transition:font-size .4s cubic-bezier(.4,0,.2,1)}
.cal-day b{font-size:calc(var(--u)*.32);transition:font-size .4s cubic-bezier(.4,0,.2,1)}
.cal-day.has::after{bottom:calc(var(--u)*.08)}
.cal-day.on{width:calc(var(--u)*2);height:calc(var(--u)*1.6);box-shadow:none}
.cal-day.on small,.cal-day.on em{font-size:max(12px,calc(var(--u)*.2))}
.cal-day.on b{font-size:calc(var(--u)*.62)}
.cal-day.on.has::after{bottom:calc(var(--u)*.12)}
@media(max-width:768px){.cal-day{flex:0 0 auto}}

.dayanim{animation:dayIn .34s ease}
@keyframes dayIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ── v4: clean framed pictures (no dark overlay, no text on the image) ── */
.proj{display:block;min-height:0;overflow:visible;background:none;box-shadow:none;border-radius:0;color:inherit}
.proj::before{display:none}
.proj:hover{transform:none;box-shadow:none}
.proj-img{height:200px;margin:3px;border-radius:26px;border:4px solid #fff;box-shadow:0 0 0 3px #0055FF,0 12px 34px rgba(15,23,42,.18);background:linear-gradient(135deg,#0055FF,#5b9bff) center/cover no-repeat;transition:transform .2s,box-shadow .2s}
.proj:hover .proj-img{transform:translateY(-3px);box-shadow:0 0 0 3px #0055FF,0 18px 40px rgba(15,23,42,.24)}
.proj-cap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 8px 4px}
.proj-t{color:#0f172a;font-size:clamp(22px,3vw,32px)}
.proj-s{color:#64748b;opacity:1;font-size:14px;margin-top:4px}
.proj-go{background:#0055FF;color:#fff;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 4px 14px rgba(0,85,255,.3)}
.projs{gap:26px}

.hero{min-height:260px;margin:3px 3px 18px;border:4px solid #fff;box-shadow:0 0 0 3px #0055FF,0 12px 34px rgba(15,23,42,.18)}
.hero::before{display:none}
.hero-back{background:rgba(15,23,42,.72);backdrop-filter:none;-webkit-backdrop-filter:none}
.hero-back:hover{background:#0055FF}
.hero-cap{text-align:center;font-family:'Manrope',system-ui,sans-serif;font-weight:800;font-size:clamp(26px,3.6vw,40px);letter-spacing:-.03em;line-height:1.1;color:#0f172a;margin:0 0 30px}
@media(max-width:768px){.proj-img{height:150px}.hero{min-height:190px}}

/* ── mobile nav in the portal: keep only Admin / My Portal next to Log out ── */
@media(max-width:768px){
  .nh-links{display:flex!important;position:absolute;right:96px;top:14px;padding:0;background:none;box-shadow:none;border-radius:0}
  .nh-links .nh-link:not(.nh-keep){display:none}
  .nh-links .nh-keep{background:#0055FF;color:#fff;padding:8px 14px;font-size:14px;border-radius:12px;box-shadow:0 4px 14px rgba(0,85,255,.25)}
}

/* admin on phones: let rows and buttons wrap */
@media(max-width:768px){
  .plist .pitem{flex-wrap:wrap}
  .plist .pitem .pn{flex:1 1 140px;min-width:0}
  .acts{white-space:normal;display:flex;flex-wrap:wrap;gap:8px}
  .sbtn{margin-left:0}
  .it{flex-direction:column}
  .pcard{padding:18px}
}
