:root{
  color-scheme: light dark;
  --bg:#f5f5f7;
  --bg-soft:#fbfbfd;
  --panel:rgba(255,255,255,.78);
  --panel-strong:rgba(255,255,255,.92);
  --text:#1d1d1f;
  --muted:#6e6e73;
  --line:rgba(0,0,0,.09);
  --shadow:0 24px 70px rgba(0,0,0,.10);
  --green:#0a7f42;
  --red:#b42330;
  --blue:#0071e3;
  --purple:#8e5cf7;
  --orange:#f5a524;
  --cell:44px;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  min-height:100vh;
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 14% 0%, rgba(0,113,227,.18), transparent 32rem),
    radial-gradient(circle at 92% 12%, rgba(142,92,247,.12), transparent 28rem),
    linear-gradient(180deg,#fff 0%,var(--bg) 48%,#ececf1 100%);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.28) 1px, transparent 1px),linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.45),transparent 55%);
}
.topbar{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:1rem;
  padding:28px clamp(16px,4vw,44px) 14px;
}
.eyebrow{
  margin:0 0 5px;
  color:var(--blue);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.topbar h1{
  margin:0;
  font-size:clamp(2.5rem,8vw,5.8rem);
  letter-spacing:-.07em;
  line-height:.9;
}
.clock{
  color:var(--muted);
  font-size:clamp(.82rem,1.4vw,1rem);
  font-variant-numeric:tabular-nums;
  text-align:right;
  white-space:nowrap;
}
.ticker-shell{
  position:sticky;
  top:0;
  z-index:5;
  margin:0 clamp(12px,3vw,34px) 18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72);
  border-radius:22px;
  background:rgba(255,255,255,.74);
  backdrop-filter:blur(24px) saturate(1.45);
  box-shadow:var(--shadow);
}
.ticker-handle{
  display:flex;
  justify-content:space-between;
  gap:.75rem;
  padding:9px 15px;
  color:#1d1d1f;
  background:linear-gradient(90deg,rgba(255,255,255,.96),rgba(245,245,247,.76));
  border-bottom:1px solid var(--line);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:grab;
  user-select:none;
}
.ticker-window{overflow:hidden;cursor:grab;touch-action:pan-y}
.ticker-track{
  display:flex;
  width:max-content;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  white-space:nowrap;
  animation:ticker 48s linear infinite;
}
.ticker-window.dragging .ticker-track,
.ticker-shell:hover .ticker-track{animation-play-state:paused}
.tick{
  display:inline-flex;
  align-items:baseline;
  gap:7px;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(255,255,255,.72);
  box-shadow:0 6px 18px rgba(0,0,0,.05);
  font-variant-numeric:tabular-nums;
}
.tick .sym{font-size:.78rem;font-weight:800;color:#2b2b2f}
.tick .px{font-size:.96rem;font-weight:750;color:#111}
.tick .chg{font-size:.78rem;font-weight:800}
.tick.up .chg{color:var(--green)}
.tick.down .chg{color:var(--red)}
.tick.stale .chg{color:var(--muted)}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.grid{
  display:grid;
  grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);
  grid-template-areas:
    "agenda week"
    "month month"
    "gantt gantt";
  gap:18px;
  padding:0 clamp(12px,3vw,34px) 34px;
}
.card{
  min-width:0;
  border:1px solid rgba(255,255,255,.75);
  border-radius:28px;
  padding:18px;
  background:var(--panel);
  backdrop-filter:blur(22px) saturate(1.35);
  box-shadow:var(--shadow);
}
.agenda-card{grid-area:agenda}.week-card{grid-area:week}.month-card{grid-area:month}.gantt-card{grid-area:gantt}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:14px}
.card h2{margin:0;font-size:1.08rem;letter-spacing:-.02em}
.card-head span{color:var(--muted);font-size:.82rem;text-align:right}
.agenda-list{display:grid;gap:10px}
.empty{color:var(--muted);padding:14px;border:1px dashed var(--line);border-radius:18px;background:rgba(255,255,255,.44)}
.agenda-item{border:1px solid var(--line);border-radius:20px;padding:13px;background:var(--panel-strong)}
.agenda-item .time{color:var(--blue);font-size:.78rem;font-weight:800;font-variant-numeric:tabular-nums}
.agenda-item .title{margin-top:4px;font-size:1rem;font-weight:760}
.agenda-item .meta{margin-top:5px;color:var(--muted);font-size:.78rem}
.week-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}
.day,.month-day{
  min-height:118px;
  border:1px solid var(--line);
  border-radius:18px;
  padding:10px;
  background:rgba(255,255,255,.58);
}
.day.today,.month-day.today{outline:2px solid rgba(0,113,227,.55);background:rgba(0,113,227,.08)}
.day-name,.date-num{display:block}.day-name{color:var(--muted);font-size:.75rem;font-weight:700}.date-num{font-size:1.45rem;font-weight:780;letter-spacing:-.04em}
.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.dow{color:var(--muted);font-size:.72rem;font-weight:800;text-align:center;text-transform:uppercase;letter-spacing:.08em}
.month-day{min-height:96px}.month-day.out{opacity:.42}.month-day strong{font-size:.86rem}
.mini-item{margin-top:6px;overflow:hidden;text-overflow:ellipsis;border-radius:9px;padding:4px 6px;background:rgba(0,113,227,.10);color:#124b84;font-size:.72rem;white-space:nowrap}
.gantt-wrap{overflow:auto;padding-bottom:4px;overscroll-behavior-x:contain}
.gantt{position:relative;display:grid;grid-template-columns:180px repeat(var(--days),var(--cell));min-width:max-content}
.gantt-head,.gantt-cell,.label{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:42px;padding:8px;font-size:.72rem;background:rgba(255,255,255,.45)}
.gantt-head{position:sticky;top:0;z-index:2;color:var(--muted);font-weight:800;text-align:center;background:rgba(251,251,253,.94);backdrop-filter:blur(16px)}
.label{position:sticky;left:0;z-index:3;width:180px;color:#1d1d1f;font-weight:800;background:rgba(251,251,253,.96);backdrop-filter:blur(16px)}
.bar-row{display:contents}.bar{position:absolute;height:24px;border-radius:999px;padding:4px 10px;overflow:hidden;text-overflow:ellipsis;color:white;font-size:.72rem;font-weight:800;white-space:nowrap;box-shadow:0 7px 18px rgba(0,0,0,.18)}
.domain-personal-infra{background:linear-gradient(90deg,var(--blue),var(--purple))}.domain-general{background:linear-gradient(90deg,#555,#888)}
.today-line{position:absolute;top:0;bottom:0;width:2px;background:#ff3b30;box-shadow:0 0 0 3px rgba(255,59,48,.13)}
@media (prefers-color-scheme: dark){
  :root{--bg:#050507;--bg-soft:#101014;--panel:rgba(28,28,30,.72);--panel-strong:rgba(36,36,38,.82);--text:#f5f5f7;--muted:#a1a1a6;--line:rgba(255,255,255,.12);--shadow:0 24px 70px rgba(0,0,0,.32);--green:#30d158;--red:#ff453a;--blue:#0a84ff}
  body{background:radial-gradient(circle at 14% 0%,rgba(10,132,255,.22),transparent 32rem),radial-gradient(circle at 92% 12%,rgba(142,92,247,.18),transparent 28rem),linear-gradient(180deg,#16161a 0%,#050507 56%,#000 100%)}
  .ticker-shell,.tick,.card,.day,.month-day,.agenda-item{border-color:var(--line)}
  .ticker-handle,.ticker-shell,.tick,.day,.month-day,.gantt-head,.label{background:rgba(28,28,30,.78);color:var(--text)}
  .tick .sym{color:#d8d8dc}.tick .px{color:#fff}.mini-item{background:rgba(10,132,255,.18);color:#d9ecff}
}
@media (max-width: 820px){
  body{background:linear-gradient(180deg,#fff 0%,var(--bg) 100%)}
  .topbar{align-items:flex-start;padding:18px 14px 10px}.topbar h1{font-size:2.65rem}.clock{font-size:.78rem;max-width:42%;white-space:normal}
  .ticker-shell{position:relative;margin:0 10px 12px;border-radius:18px}.ticker-handle{padding:8px 12px}.ticker-track{gap:8px;padding:10px}.tick{padding:7px 9px}.tick .sym{font-size:.7rem}.tick .px{font-size:.88rem}.tick .chg{font-size:.7rem}
  .grid{display:flex;flex-direction:column;gap:12px;padding:0 10px 18px}.card{border-radius:22px;padding:13px;box-shadow:0 12px 34px rgba(0,0,0,.08)}
  .card-head{margin-bottom:10px}.card h2{font-size:1rem}.card-head span{font-size:.74rem}
  .week-calendar{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.day{flex:0 0 124px;min-height:112px}.date-num{font-size:1.25rem}
  .month-calendar{gap:5px}.dow{font-size:.58rem}.month-day{min-height:44px;border-radius:12px;padding:6px;text-align:center}.month-day .mini-item{display:none}.month-day strong{font-size:.75rem}
  .gantt{grid-template-columns:132px repeat(var(--days),38px)}.label{width:132px}.gantt-head,.gantt-cell,.label{min-height:38px;padding:6px;font-size:.64rem}.bar{height:22px;font-size:.64rem;padding:4px 8px}
}
@media (min-width: 1180px){
  .grid{grid-template-columns:minmax(340px,.65fr) minmax(560px,1.35fr);grid-template-areas:"agenda week" "agenda month" "gantt gantt";align-items:start}.agenda-card{position:sticky;top:92px}
}
