/* ORBITCODE LAB V9 — responsive calendar, binding-aware presentation. */
.portfolio-calendar-page{position:relative;overflow-x:clip}
.portfolio-calendar-main{width:100%;max-width:1180px!important;min-width:0;margin-inline:auto;overflow:visible}
.portfolio-calendar-intro{position:relative;padding:clamp(18px,4vw,32px);border:1px solid hsl(var(--border)/.72);border-radius:24px;background:linear-gradient(135deg,hsl(var(--card)/.92),hsl(var(--card)/.68));box-shadow:0 22px 70px hsl(var(--background)/.35);overflow:hidden}
.portfolio-calendar-intro::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 8% 10%,hsl(var(--primary)/.18),transparent 32%),radial-gradient(circle at 92% 90%,hsl(var(--accent)/.14),transparent 38%)}
.portfolio-calendar-intro>*{position:relative;z-index:1}
.portfolio-calendar-intro h1{margin:0;font-size:clamp(2.25rem,7vw,4.8rem)!important;line-height:.9!important;text-wrap:balance}
.portfolio-calendar-intro p{margin-top:10px;max-width:650px;font-size:clamp(.98rem,2.6vw,1.15rem);line-height:1.65}
.portfolio-calendar-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.portfolio-calendar-meta span{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border:1px solid hsl(var(--border)/.72);border-radius:999px;background:hsl(var(--background)/.52);color:hsl(var(--muted-foreground));font:700 10px/1.2 "Fira Code",monospace;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(12px)}
.portfolio-calendar-meta span::before{content:"";width:7px;height:7px;border-radius:50%;background:hsl(var(--primary));box-shadow:0 0 14px hsl(var(--primary)/.75)}
.portfolio-calendar-wrap{width:100%;min-width:0;margin-inline:auto!important}
.portfolio-calendar-card{position:relative;width:100%!important;min-width:0;overflow:hidden;border-color:hsl(var(--primary)/.32)!important;border-radius:26px!important;background:radial-gradient(circle at 96% 0,hsl(var(--primary)/.10),transparent 28%),linear-gradient(160deg,hsl(var(--card)/.98),hsl(var(--background)/.84))!important;box-shadow:0 28px 80px hsl(var(--background)/.46),inset 0 1px 0 hsl(var(--foreground)/.05)}
.portfolio-calendar-card::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,hsl(var(--primary)),hsl(var(--accent)),hsl(var(--secondary)));box-shadow:0 0 20px hsl(var(--primary)/.35);pointer-events:none}
.portfolio-calendar-card-header{display:grid!important;grid-template-columns:minmax(150px,auto) minmax(0,1fr);align-items:center!important;gap:18px!important;padding:clamp(18px,3vw,26px)!important;border-bottom:1px solid hsl(var(--border)/.62)}
.portfolio-calendar-card-title{min-width:0;font-size:clamp(1.25rem,3vw,1.75rem)!important;letter-spacing:.04em}
.portfolio-calendar-card-title svg{filter:drop-shadow(0 0 10px hsl(var(--primary)/.45))}
.portfolio-calendar-controls{display:grid!important;grid-template-columns:44px minmax(130px,1fr) 44px 44px;align-items:center;justify-content:end;gap:10px!important;min-width:0;width:min(100%,470px);margin-left:auto}
.portfolio-calendar-controls button{width:44px!important;height:44px!important;min-width:44px!important;margin:0!important;border-radius:13px!important;border-color:hsl(var(--border)/.9)!important;background:hsl(var(--background)/.62)!important;color:hsl(var(--foreground))!important;box-shadow:inset 0 1px 0 hsl(var(--foreground)/.05);transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease!important}
.portfolio-calendar-controls button:hover{transform:translateY(-2px);border-color:hsl(var(--primary)/.68)!important;background:hsl(var(--primary)/.13)!important;box-shadow:0 12px 30px hsl(var(--primary)/.12)}
.portfolio-calendar-controls button:focus-visible{outline:3px solid hsl(var(--ring)/.42)!important;outline-offset:2px!important}
.portfolio-calendar-add{background:linear-gradient(135deg,hsl(var(--primary)),hsl(var(--secondary)))!important;color:hsl(var(--primary-foreground))!important;border-color:transparent!important;box-shadow:0 10px 28px hsl(var(--primary)/.26)!important}
.portfolio-calendar-month{display:flex;align-items:center;justify-content:center;min-width:0!important;height:44px;padding-inline:12px;border:1px solid hsl(var(--border)/.72);border-radius:13px;background:hsl(var(--background)/.48);color:hsl(var(--foreground));font-family:"Fira Code",monospace!important;font-size:clamp(.78rem,2.2vw,1rem)!important;font-weight:800;letter-spacing:.13em!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.portfolio-calendar-content{padding:clamp(14px,3vw,26px)!important;min-width:0}
.portfolio-calendar-weekdays,.portfolio-calendar-days{width:100%;min-width:0;gap:clamp(4px,1vw,9px)!important}
.portfolio-calendar-weekday{display:flex;align-items:center;justify-content:center;min-width:0;padding-block:8px;color:hsl(var(--muted-foreground))!important;font-family:"Fira Code",monospace;font-size:clamp(8px,1.8vw,11px)!important;letter-spacing:.08em}
.portfolio-calendar-day{position:relative!important;min-width:0!important;width:100%!important;height:auto!important;aspect-ratio:1/1;border-radius:13px!important;border-color:hsl(var(--border)/.48)!important;background:hsl(var(--background)/.34);font-weight:700;isolation:isolate;overflow:hidden}
.portfolio-calendar-day::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(145deg,hsl(var(--foreground)/.025),transparent 60%);opacity:0;transition:opacity .2s ease}
.portfolio-calendar-day:not(.is-empty):hover{border-color:hsl(var(--primary)/.65)!important;background:hsl(var(--primary)/.10)!important;transform:translateY(-1px)}
.portfolio-calendar-day:not(.is-empty):hover::before{opacity:1}
.portfolio-calendar-day.is-empty{border-color:transparent!important;background:transparent!important;pointer-events:none}
.portfolio-calendar-day.is-today{border-color:hsl(var(--primary))!important;background:linear-gradient(145deg,hsl(var(--primary)/.22),hsl(var(--primary)/.08))!important;box-shadow:0 0 0 1px hsl(var(--primary)/.18),0 10px 30px hsl(var(--primary)/.12)}
.portfolio-calendar-day.is-today span{color:hsl(var(--foreground));font-weight:900}
.portfolio-calendar-events{margin-top:20px!important;padding-top:16px;border-top:1px solid hsl(var(--border)/.52)}
.portfolio-calendar-empty-events{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border:1px dashed hsl(var(--border)/.75);border-radius:14px;background:hsl(var(--background)/.30);color:hsl(var(--muted-foreground));font-size:.82rem}
.portfolio-calendar-empty-events strong{color:hsl(var(--foreground));font-size:.88rem}
html.light .portfolio-calendar-intro,html.light .portfolio-calendar-card{box-shadow:0 24px 70px rgba(15,23,42,.13)!important}
html.light .portfolio-calendar-day{background:hsl(var(--card)/.76)}
html.light .portfolio-calendar-controls button,html.light .portfolio-calendar-month{background:hsl(var(--card)/.9)!important}

@media(max-width:760px){
  .portfolio-calendar-main{padding-left:max(14px,env(safe-area-inset-left))!important;padding-right:max(14px,env(safe-area-inset-right))!important;padding-top:clamp(84px,17vw,104px)!important}
  .portfolio-calendar-intro{padding:20px;border-radius:20px}
  .portfolio-calendar-intro h1{font-size:clamp(2.35rem,13vw,4rem)!important}
  .portfolio-calendar-card-header{grid-template-columns:1fr!important;gap:14px!important;padding:18px 16px!important}
  .portfolio-calendar-card-title{justify-content:center;text-align:center}
  .portfolio-calendar-controls{grid-template-columns:42px minmax(0,1fr) 42px 42px;width:100%;max-width:none;margin:0}
  .portfolio-calendar-controls button{width:42px!important;height:42px!important;min-width:42px!important;border-radius:12px!important}
  .portfolio-calendar-month{height:42px;padding-inline:7px;font-size:clamp(.72rem,3.3vw,.92rem)!important;letter-spacing:.09em!important}
  .portfolio-calendar-content{padding:16px 12px 18px!important}
  .portfolio-calendar-weekdays,.portfolio-calendar-days{gap:5px!important}
  .portfolio-calendar-day{border-radius:10px!important}
  .portfolio-calendar-day span{font-size:clamp(10px,3vw,13px)!important}
}
@media(max-width:390px){
  .portfolio-calendar-main{padding-left:10px!important;padding-right:10px!important}
  .portfolio-calendar-intro{padding:17px}
  .portfolio-calendar-card{border-radius:20px!important}
  .portfolio-calendar-card-header{padding:16px 10px!important}
  .portfolio-calendar-controls{grid-template-columns:38px minmax(0,1fr) 38px 38px;gap:6px!important}
  .portfolio-calendar-controls button{width:38px!important;height:38px!important;min-width:38px!important}
  .portfolio-calendar-month{height:38px;font-size:11px!important;letter-spacing:.05em!important}
  .portfolio-calendar-content{padding:14px 8px 16px!important}
  .portfolio-calendar-weekdays,.portfolio-calendar-days{gap:3px!important}
  .portfolio-calendar-weekday{font-size:7.5px!important;letter-spacing:0}
  .portfolio-calendar-day{border-radius:8px!important}
}
@media(prefers-reduced-motion:reduce){.portfolio-calendar-controls button,.portfolio-calendar-day{transition:none!important;transform:none!important}}
