/* AU ONE ERP · construction/siteform-pro.css — Site Form premium pass
   (2026-09-11). Presentation only, scoped to .sfview (the Site Form view) and
   layered over leaderboard.css / msched-year.css / schedule.css. Depth,
   motion, and a clear hierarchy through the construction tokens; every
   animation honours prefers-reduced-motion and is stripped for print. */
.sfview{ --sf-ease:cubic-bezier(.22,.9,.24,1); --sf-spring:cubic-bezier(.34,1.4,.44,1); --sf-olive:var(--olive,#748040); --sf-olive-d:var(--olive-d,#54632a); --sf-gold:#e9d9a3; }
@keyframes sfUp{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
@keyframes sfPop{ 0%{ opacity:0; transform:scale(.94); } 60%{ opacity:1; transform:scale(1.015); } 100%{ transform:none; } }
@keyframes sfGlow{ 0%,100%{ box-shadow:0 0 0 0 rgba(163,178,94,.45); } 60%{ box-shadow:0 0 0 10px rgba(163,178,94,0); } }
@keyframes sfShine{ from{ transform:translateX(-160%) skewX(-18deg); } to{ transform:translateX(260%) skewX(-18deg); } }
@keyframes sfFill{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
@keyframes sfSpin{ to{ transform:rotate(360deg); } }
@keyframes sfShimmer{ 0%{ background-position:0% 50%; } 100%{ background-position:200% 50%; } }

/* ---- hero -------------------------------------------------------------- */
.sfview .sfhero{ position:relative; }
.sfview .sfhero::before{ content:""; position:absolute; left:50%; top:-20px; width:420px; height:200px; transform:translateX(-50%); pointer-events:none; z-index:0;
  background:radial-gradient(closest-side, rgba(163,178,94,.22), transparent 72%); filter:blur(18px); }
.sfview .sfhero > *{ position:relative; z-index:1; }
.sfview .sfhero-ic{ width:56px; height:56px; border-radius:17px; background:linear-gradient(145deg,var(--sf-olive),var(--sf-olive-d)); color:#fff;
  box-shadow:0 14px 30px -10px rgba(84,99,42,.7), inset 0 1px 0 rgba(255,255,255,.28); }
.sfview .sfhero h2{ letter-spacing:-.02em; }
.sfview .sfhero-sub{ letter-spacing:.14em; font-weight:800; color:var(--sf-olive-d); }

/* ---- segmented control (Site tasks · Plan vs actual) + refresh --------- */
.sfview .sfseg{ display:inline-flex; gap:4px; padding:4px; border-radius:999px; background:var(--paper3,rgba(0,0,0,.04)); border:1px solid var(--line); }
.sfview .sfsegb{ border:0; background:transparent; border-radius:999px; font-weight:800; transition:background-color .18s, color .18s, transform .18s var(--sf-spring), box-shadow .2s; }
.sfview .sfsegb:hover{ transform:translateY(-1px); }
.sfview .sfsegb.on{ background:linear-gradient(135deg,var(--sf-olive),var(--sf-olive-d)); color:#fff; box-shadow:0 8px 18px -8px rgba(84,99,42,.8); }
.sfview .sfsegb:active{ transform:scale(.96); }

/* ---- month KPI strip --------------------------------------------------- */
.sfview .sfmed{ position:relative; overflow:hidden; border-radius:14px; box-shadow:var(--shadow,0 1px 2px rgba(0,0,0,.05)); transition:transform .22s var(--sf-spring), box-shadow .24s var(--sf-ease), border-color .2s; }
.sfview .sfmed::after{ content:""; position:absolute; right:-30px; top:-30px; width:110px; height:110px; border-radius:50%; background:var(--sf-olive); opacity:.06; pointer-events:none; transition:transform .3s var(--sf-ease); }
.sfview .sfmed:hover{ transform:translateY(-2px); box-shadow:0 16px 30px -18px rgba(20,24,16,.45); border-color:rgba(116,128,64,.45); }
.sfview .sfmed:hover::after{ transform:scale(1.3); }
.sfview .sfmed b{ font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.sfview .sfmed.g{ background:linear-gradient(135deg,var(--sf-olive),var(--sf-olive-d)); color:#fff; box-shadow:0 14px 28px -12px rgba(84,99,42,.75); }
.sfview .sfmed.g::after{ background:#fff; opacity:.12; }

/* ---- section headers --------------------------------------------------- */
.sfview .sfsechd{ position:relative; padding-left:14px; }
.sfview .sfsechd::before{ content:""; position:absolute; left:0; top:.2em; width:4px; height:1em; border-radius:4px; background:linear-gradient(180deg,var(--sf-olive),rgba(116,128,64,.35)); }
.sfview .sfsechd span{ letter-spacing:.12em; }
.sfview .sfempty{ border:1px dashed var(--line2,var(--line)); border-radius:14px; padding:18px; }

/* ---- project rows / cards --------------------------------------------- */
.sfview .card{ transition:transform .22s var(--sf-spring), box-shadow .26s var(--sf-ease), border-color .2s; }
.sfview .card:hover{ transform:translateY(-2px); box-shadow:0 18px 34px -20px rgba(20,24,16,.45); border-color:rgba(116,128,64,.4); }

/* ---- Weekly Site Form / Gantt / Planned schedule tabs ------------------ */
.sfview .pdtabs{ gap:8px; padding:4px; border-radius:16px; background:var(--paper3,rgba(0,0,0,.03)); border:1px solid var(--line); }
.sfview .pdtab{ border-radius:12px; transition:background-color .18s, color .18s, transform .18s var(--sf-spring), box-shadow .2s; }
.sfview .pdtab:hover{ transform:translateY(-1px); }
.sfview .pdtab.on{ background:var(--paper2); box-shadow:0 8px 18px -12px rgba(20,24,16,.5); }
.sfview .pdtab.on::after{ background:var(--sf-olive); height:3px; border-radius:3px; }

/* ---- calendar ---------------------------------------------------------- */
.sfview .mscal{ border-radius:18px; box-shadow:var(--shadow,0 1px 2px rgba(0,0,0,.05)); overflow:hidden; }
.sfview .mscal-hd{ background:linear-gradient(180deg, rgba(116,128,64,.08), transparent); padding-bottom:8px; }
.sfview .mscal-thism{ background:linear-gradient(135deg,var(--sf-olive),var(--sf-olive-d)); color:#fff; padding:3px 8px; border-radius:999px; }
.sfview .mscal-nav button{ border-radius:10px; transition:transform .18s var(--sf-spring), background-color .18s; }
.sfview .mscal-nav button:hover{ transform:translateY(-1px); background:rgba(116,128,64,.12); }
.sfview .mscal-nav button:active{ transform:scale(.94); }
.sfview .mscal-row.now{ background:linear-gradient(90deg, rgba(163,178,94,.16), rgba(163,178,94,.05)); border-radius:10px; }
.sfview .mscal-day.tdy, .sfview .mscal-day.today{ position:relative; font-weight:800; color:#fff; }
.sfview .mscal-day.tdy::before, .sfview .mscal-day.today::before{ content:""; position:absolute; left:50%; top:50%; width:26px; height:26px; margin:-13px 0 0 -13px; border-radius:50%; background:linear-gradient(135deg,var(--sf-olive),var(--sf-olive-d)); z-index:-1; }
@media (prefers-reduced-motion:no-preference){ .sfview .mscal-day.tdy::before, .sfview .mscal-day.today::before{ animation:sfGlow 2.6s ease-out infinite; } }
.sfview .mscal-bar{ transition:transform .18s var(--sf-spring), box-shadow .18s; }
.sfview .mscal-bar:hover{ transform:translateY(-1px); box-shadow:0 8px 16px -10px rgba(20,24,16,.6); }
.sfview .mscal-legend, .sfview .mscal-empty{ border-top:1px dashed var(--line); padding-top:8px; }

/* ---- year at a glance -------------------------------------------------- */
.sfview .msyear{ border-radius:18px; }
.sfview .msytile{ transition:transform .22s var(--sf-spring), box-shadow .26s var(--sf-ease), border-color .2s; }
.sfview .msytile:hover{ transform:translateY(-3px); box-shadow:0 18px 34px -20px rgba(20,24,16,.45); }
.sfview .msytile.now{ box-shadow:0 0 0 2px var(--sf-olive), 0 18px 34px -18px rgba(84,99,42,.6); }
@media (prefers-reduced-motion:no-preference){ .sfview .msytile.now{ animation:sfGlow 3s ease-out infinite; } }
.sfview .msytile .msynow{ background:linear-gradient(135deg,var(--sf-olive),var(--sf-olive-d)); color:#fff; border:0; }
.sfview .msyring .msyr-fg{ transition:stroke-dashoffset 1.2s var(--sf-ease); }
.sfview .msybar > i{ transform-origin:left; }
@media (prefers-reduced-motion:no-preference){ .sfview .msybar > i{ animation:sfFill 1s .3s var(--sf-ease) both; } }

/* ---- race rail: podium, lanes, standings ------------------------------- */
.sfview .sfrail{ border-radius:20px; box-shadow:var(--shadow,0 1px 2px rgba(0,0,0,.05)); }
.sfview .sfaward{ border-radius:999px; transition:transform .18s var(--sf-spring), box-shadow .2s, background-color .18s; position:relative; overflow:hidden; }
.sfview .sfaward:hover{ transform:translateY(-1px); box-shadow:0 10px 22px -12px rgba(84,99,42,.8); }
.sfview .sfaward::after{ content:""; position:absolute; top:0; bottom:0; width:40%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent); transform:translateX(-160%) skewX(-18deg); pointer-events:none; }
@media (prefers-reduced-motion:no-preference){ .sfview .sfaward:hover::after{ animation:sfShine .8s var(--sf-ease); } }
.sfview .sfwknb{ border-radius:10px; transition:transform .18s var(--sf-spring), background-color .18s; }
.sfview .sfwknb:hover:not(:disabled){ transform:translateY(-1px); }
.sfview .sfwknow{ background:linear-gradient(135deg,var(--sf-olive),var(--sf-olive-d)); color:#fff; border:0; }
.sfview .sfpod{ position:relative; overflow:hidden; transition:transform .24s var(--sf-spring), box-shadow .26s var(--sf-ease); }
.sfview .sfpod:hover{ transform:translateY(-3px); box-shadow:0 18px 34px -18px rgba(20,24,16,.5); }
.sfview .sfpod.r0{ border-color:rgba(233,217,163,.7); box-shadow:0 0 0 1px rgba(233,217,163,.35), 0 18px 34px -16px rgba(180,150,60,.55);
  background:linear-gradient(180deg, rgba(233,217,163,.16), transparent 60%); }
.sfview .sfpod.r0::after{ content:""; position:absolute; top:0; bottom:0; width:40%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent); transform:translateX(-160%) skewX(-18deg); pointer-events:none; }
@media (prefers-reduced-motion:no-preference){ .sfview .sfpod.r0::after{ animation:sfShine 2.2s 1.2s var(--sf-ease) 1; } }
.sfview .sfpod-medal{ filter:drop-shadow(0 6px 10px rgba(0,0,0,.25)); transition:transform .24s var(--sf-spring); }
.sfview .sfpod:hover .sfpod-medal{ transform:scale(1.15) rotate(-6deg); }
.sfview .sfpod-pct{ font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.sfview .sfpod.r0 .sfpod-pct{ background:linear-gradient(90deg,var(--sf-olive-d),#b9c77e,var(--sf-olive-d)); background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent; }
@media (prefers-reduced-motion:no-preference){ .sfview .sfpod.r0 .sfpod-pct{ animation:sfShimmer 4s linear infinite; } }
.sfview .sflane{ border-radius:12px; padding:6px 8px; transition:background-color .18s, transform .18s var(--sf-spring); }
.sfview .sflane:hover{ background:rgba(116,128,64,.08); transform:translateX(2px); }
.sfview .sflane.me{ background:rgba(163,178,94,.12); box-shadow:inset 0 0 0 1px rgba(163,178,94,.35); }
.sfview .sflane-track{ border-radius:999px; overflow:hidden; }
.sfview .sflane-fill{ transform-origin:left; border-radius:999px; box-shadow:0 0 10px rgba(163,178,94,.35); }
@media (prefers-reduced-motion:no-preference){ .sfview .sflane-fill{ animation:sfFill 1.1s .2s var(--sf-ease) both; } }
.sfview .sflane-fill.lead{ background:linear-gradient(90deg,var(--sf-olive),#b9c77e); }
.sfview .sflane-pct{ font-variant-numeric:tabular-nums; }
.sfview .lb-row{ border-radius:12px; transition:background-color .18s, transform .18s var(--sf-spring); }
.sfview .lb-row:hover{ background:rgba(116,128,64,.08); transform:translateX(2px); }
.sfview .lb-medal{ transition:transform .2s var(--sf-spring); }
.sfview .lb-row:hover .lb-medal{ transform:scale(1.2); }
.sfview .sfstand-sum{ border-radius:12px; transition:background-color .18s; }
.sfview .sfstand-sum:hover{ background:rgba(116,128,64,.08); }
.sfview .sfnotyet{ border-radius:12px; }

/* ---- schedule chips / buttons ----------------------------------------- */
.sfview .sch-chip{ font-weight:800; letter-spacing:.02em; }
.sfview .sch-btn{ transition:transform .18s var(--sf-spring), box-shadow .2s, background-color .18s; }
.sfview .sch-btn:hover{ transform:translateY(-1px); box-shadow:0 10px 20px -12px rgba(20,24,16,.5); }
.sfview .sch-btn:active{ transform:scale(.97); }
.sfview .sch-btn.primary{ background:linear-gradient(135deg,var(--sf-olive),var(--sf-olive-d)); border-color:transparent; box-shadow:0 10px 22px -10px rgba(84,99,42,.8); }
.sfview .sch-weekbar{ border-radius:999px; overflow:hidden; }
.sfview .sch-weekbar i{ transform-origin:left; }
@media (prefers-reduced-motion:no-preference){ .sfview .sch-weekbar i{ animation:sfFill 1s var(--sf-ease) both; } }

/* ---- reveal in sequence ------------------------------------------------ */
@media (prefers-reduced-motion:no-preference){
  .sfview .sfhero{ animation:sfUp .5s var(--sf-ease) both; }
  .sfview .sfmain > .sfsec, .sfview .sfmain > .card, .sfview .sfmain > .sfempty{ animation:sfUp .5s var(--sf-ease) both; }
  .sfview .sfmain > *:nth-child(2){ animation-delay:.06s } .sfview .sfmain > *:nth-child(3){ animation-delay:.12s } .sfview .sfmain > *:nth-child(4){ animation-delay:.18s } .sfview .sfmain > *:nth-child(n+5){ animation-delay:.24s }
  .sfview .sfmed{ animation:sfPop .45s var(--sf-spring) both; }
  .sfview .sfmed:nth-child(2){ animation-delay:.06s } .sfview .sfmed:nth-child(3){ animation-delay:.12s } .sfview .sfmed:nth-child(4){ animation-delay:.18s }
  .sfview .sfrail{ animation:sfUp .55s .1s var(--sf-ease) both; }
  .sfview .sfpod{ animation:sfPop .5s var(--sf-spring) both; }
  .sfview .sfpod.r1{ animation-delay:.1s } .sfview .sfpod.r0{ animation-delay:.2s } .sfview .sfpod.r2{ animation-delay:.3s }
  .sfview .msytile{ animation:sfUp .45s var(--sf-ease) both; }
  .sfview .msytile:nth-child(2){ animation-delay:.04s } .sfview .msytile:nth-child(3){ animation-delay:.08s } .sfview .msytile:nth-child(4){ animation-delay:.12s } .sfview .msytile:nth-child(5){ animation-delay:.16s } .sfview .msytile:nth-child(6){ animation-delay:.2s }
  .sfview .msytile:nth-child(7){ animation-delay:.24s } .sfview .msytile:nth-child(8){ animation-delay:.28s } .sfview .msytile:nth-child(9){ animation-delay:.32s } .sfview .msytile:nth-child(10){ animation-delay:.36s } .sfview .msytile:nth-child(11){ animation-delay:.4s } .sfview .msytile:nth-child(12){ animation-delay:.44s }
  .sfview .hpbtn.prefresh:focus-visible{ animation:sfSpin .9s linear infinite; }
}
@media (max-width:600px){ .sfview .sfmed:hover, .sfview .card:hover, .sfview .msytile:hover, .sfview .sfpod:hover{ transform:none; } }
@media print{ .sfview *, .sfview *::before, .sfview *::after{ animation:none !important; transition:none !important; box-shadow:none !important; } }
