.txc-shell { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; }
.txc-shell__header { position: sticky; top: 0; z-index: 20; min-height: 4.75rem; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.5rem; padding: .75rem clamp(1rem, 4vw, 4rem); color: var(--txc-chrome-text); background-color: color-mix(in srgb, var(--txc-chrome) 97%, transparent); background-image: radial-gradient(circle, #ffffff12 0 .7px, transparent .8px); background-size: 9px 9px; backdrop-filter: blur(14px); border-bottom: 0; box-shadow: 0 1px 0 #00000045; }
.txc-shell__header::after { content: ''; position: absolute; inset: auto 0 0; height: 4px; background: var(--txc-brand-purple); }
.txc-brand { display: inline-flex; align-items: center; gap: .55rem; width: max-content; color: inherit; text-decoration: none; font-weight: 750; letter-spacing: -.02em; }
.txc-brand__mark { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; color: #fff; background-color: var(--txc-brand-purple); background-image: radial-gradient(circle, #ffffff2e 0 .8px, transparent 1px); background-size: 5px 5px; border: 2px solid #fff; border-radius: .6rem; box-shadow: 2px 2px 0 #000; font-size: .75rem; font-weight: 900; letter-spacing: .08em; text-shadow: 1px 1px 0 #000; }
.txc-brand__name { font-size: 1.3rem; }
.txc-badge { margin-left: .25rem; padding: .24rem .5rem; color: var(--txc-chrome-text); border: 1px solid #ffffff45; border-radius: 999px; font: 600 .72rem/1 var(--txc-mono); text-transform: uppercase; letter-spacing: .05em; }
.txc-nav { display: flex; gap: .25rem; padding: .3rem; border: 1px solid #ffffff1f; border-radius: 999px; background: #ffffff0d; }
.txc-nav a { padding: .62rem .9rem; color: #ffffffb8; border-radius: 999px; text-decoration: none; font-size: .9rem; }
.txc-nav a:hover, .txc-nav a:focus-visible { color: #fff; background: #ffffff15; }
.txc-shell__actions { grid-column: 3; justify-self: end; display: flex; align-items: center; gap: .65rem; }
.txc-theme-toggle { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.45rem; padding: .55rem .7rem; color: var(--txc-chrome-muted); background: transparent; border: 1px solid #ffffff30; border-radius: .6rem; cursor: pointer; font-size: .78rem; font-weight: 720; }
.txc-theme-toggle:hover { color: var(--txc-chrome-text); background: #ffffff0d; border-color: #ffffff52; }
.txc-theme-toggle__icon { color: var(--txc-accent-bright); font-size: 1rem; line-height: 1; }
.txc-user { justify-self: end; display: flex; align-items: center; gap: .65rem; font-size: .85rem; }
.txc-user__avatar { display: grid; place-items: center; width: 2rem; height: 2rem; color: #fff; background: var(--txc-brand-purple); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 2px var(--txc-brand-purple); font-weight: 900; }
.txc-user a { color: var(--txc-chrome-muted); }
.txc-shell__signin { justify-self: end; padding: .7rem 1rem; color: #fff; border: 1px solid #ffffff52; border-radius: .65rem; text-decoration: none; font-weight: 750; }
.txc-nav-toggle { display: none; }
.txc-shell__main { width: min(100% - 2rem, 90rem); margin-inline: auto; padding-block: clamp(1.5rem, 4vw, 4rem); }
.txc-shell__footer { display: flex; justify-content: space-between; gap: 2rem; padding: 1.25rem clamp(1rem, 4vw, 4rem); color: var(--txc-chrome-muted); background-color: var(--txc-chrome); background-image: radial-gradient(circle, #ffffff0f 0 .7px, transparent .8px); background-size: 10px 10px; border-top: 3px solid var(--txc-brand-purple); font-size: .78rem; }
@media (max-width: 840px) {
  .txc-shell__header { grid-template-columns: 1fr auto; }
  .txc-shell__actions { grid-column: 2; }
  .txc-nav-toggle { display: inline-flex; color: #fff; background: transparent; border: 1px solid #ffffff3d; border-radius: .6rem; padding: .65rem .8rem; }
  .txc-nav { display: none; position: absolute; inset: 4.75rem 1rem auto; flex-direction: column; background: var(--txc-chrome); border-radius: .8rem; padding: .7rem; box-shadow: var(--txc-shadow); }
  .txc-nav[data-open="true"] { display: flex; }
  .txc-user { display: none; }
  .txc-shell__footer { flex-direction: column; }
}
@media (max-width: 560px) {
  .txc-theme-toggle [data-theme-label], .txc-badge { display: none; }
  .txc-shell__actions { gap: .4rem; }
  .txc-shell__signin { padding-inline: .7rem; font-size: .8rem; }
}

.txc-shell__holiday { grid-column: 1 / -1; width: 100%; }
.txc-shell__holiday:empty { display: none; }

.txc-user-menu { position: relative; }
.txc-user-menu summary { display: flex; cursor: pointer; }
.txc-user-menu__links { position: absolute; right: 0; top: 100%; z-index: 20;
  min-width: 12rem; padding: 1rem; background: var(--txc-chrome); color: var(--txc-chrome-text);
  border: 1px solid currentColor; border-radius: .5rem; }
.txc-user-menu__links a { display: block; padding: .5rem; color: var(--txc-chrome-text); }

.txc-user-menu summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

@media (max-width: 840px) {
  .txc-user-menu .txc-user__name { display: none; }
}
