/* Dedicated app page only. Other theme pages retain their own layout. */
body.tc-app-page { margin: 0; }
.tc-app { min-height: 60svh; position: relative; padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
.tc-theme-integrated .tc-page-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.tc-theme-integrated .tc-welcome { display:none; }
.tc-theme-integrated .tc-view-heading { margin-bottom:28px; }
.tc-theme-integrated .tc-main { max-width:1120px; }
.tc-theme-integrated .tc-public-hero { padding:clamp(24px,5vw,60px); background:var(--tc-primary-soft); }
.tc-theme-integrated .tc-public-hero h2 { max-width:650px; font-size:clamp(28px,4vw,48px); line-height:1.2; color:var(--tc-primary); }
.tc-theme-integrated .tc-public-hero p { max-width:680px; }
.tc-theme-integrated .tc-public-hero .tc-button { margin-top:16px; }
.tc-theme-integrated.tc-app .tc-main { padding:28px clamp(16px,3vw,32px); }
.tc-theme-integrated.tc-app { padding-bottom:24px; }
.tc-theme-integrated.tc-app .tc-bottom-nav { position:relative;top:auto;bottom:auto;left:auto;transform:none;max-width:100%;margin:0 auto;border-radius:0;box-shadow:none; }
.tc-theme-integrated .tc-session-programs { display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); }
.tc-theme-integrated .tc-session-programs .tc-card { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.tc-theme-integrated .tc-session-programs .tc-button { margin-top:auto; }
@media(min-width:768px){.tc-theme-integrated.tc-app .tc-bottom-nav{position:relative;top:auto;left:auto;transform:none;margin:0 auto;max-width:1056px;width:calc(100% - 64px);}}
.tc-theme-integrated .tc-auth-card { max-width:560px; margin:0 auto; }
.tc-theme-integrated .tc-auth-card #loginform label { display:block; margin-bottom:8px; }
.tc-theme-integrated .tc-auth-card #loginform input:not([type=checkbox]) { width:100%; min-height:48px; border:1px solid var(--tc-control-border); border-radius:8px; padding:10px; }
.tc-theme-integrated .tc-auth-card #wp-submit { background:var(--tc-primary); color:var(--tc-on-primary); cursor:pointer; }
.tc-app .tc-app-header { max-width: 1180px; margin: 0 auto; min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: var(--tc-space-3); padding: var(--tc-space-5) var(--tc-space-4); }
.tc-app .tc-brand { display: flex; align-items: center; gap: var(--tc-space-3); font-size: 15px; font-weight: 650; line-height: 1.3; color: var(--tc-text); min-width: 0; }
.tc-app .tc-brand > span:last-child { min-width: 0; }
.tc-app .tc-brand small { display: none; font-size: 11px; line-height: 1.4; color: var(--tc-muted); font-weight: 400; margin-top: var(--tc-space-1); }
.tc-app .tc-brand-mark { background: var(--tc-primary); color: var(--tc-on-primary); width: 38px; height: 42px; border-radius: var(--tc-radius-2); display: grid; place-items: center; flex-shrink: 0; }
.tc-app .tc-header-actions { display: flex; gap: var(--tc-space-2); flex-shrink: 0; }
.tc-app .tc-header-actions .tc-icon-button { background: transparent; border-color: transparent; }
.tc-app .tc-main { max-width: 880px; margin: 0 auto; padding: var(--tc-space-6) var(--tc-space-4); outline: none; }
.tc-app .tc-welcome { margin-bottom: var(--tc-space-6); }
.tc-app .tc-welcome h1 { margin-top: var(--tc-space-2); }
.tc-app .tc-section { margin-top: var(--tc-space-8); }
.tc-app .tc-today { display: flex; flex-direction: column; gap: var(--tc-space-6); align-items: center; background: var(--tc-surface); position: relative; }
.tc-app .tc-today-copy { width: 100%; }
.tc-app .tc-today h2 { margin-top: var(--tc-space-4); max-width: 300px; }
.tc-app .tc-today-copy .tc-button { margin-top: var(--tc-space-5); }
.tc-app .tc-today-copy > p { max-width: 400px; }
.tc-app .tc-inline-empty { display: flex; align-items: center; gap: var(--tc-space-3); padding: var(--tc-space-5); border: 1px dashed var(--tc-border); border-radius: var(--tc-radius-3); color: var(--tc-muted); }
.tc-app .tc-inline-empty > p { margin: 0; font-size: 14px; }
.tc-app .tc-inline-empty > .tc-icon { color: var(--tc-primary); }
.tc-app .tc-week-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--tc-space-1); margin-top: var(--tc-space-5); }
.tc-app .tc-week-days > div { display: flex; flex-direction: column; align-items: center; gap: var(--tc-space-3); color: var(--tc-muted); font-size: 10px; }
.tc-app .tc-day-dot { width: 28px; height: 28px; display: grid; place-items: center; background: var(--tc-surface-alt); border-radius: 50%; color: var(--tc-muted); }
.tc-app .tc-book-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--tc-space-3); margin-top: var(--tc-space-4); }
.tc-app .tc-bottom-nav { display: flex; align-items: stretch; justify-content: space-between; position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; max-width: 560px; min-height: 72px; padding: var(--tc-space-2) var(--tc-space-2) calc(var(--tc-space-2) + env(safe-area-inset-bottom)); background: var(--tc-surface); border: 1px solid var(--tc-border); border-bottom: 0; border-radius: var(--tc-radius-3) var(--tc-radius-3) 0 0; box-shadow: var(--tc-shadow-raised); z-index: 90; }
.tc-app .tc-nav-item { display: flex; flex: 1; min-width: 0; min-height: 56px; flex-direction: column; align-items: center; justify-content: center; gap: var(--tc-space-1); color: var(--tc-muted); border-radius: var(--tc-radius-2); font-size: 10px; font-weight: 500; padding: var(--tc-space-1); }
.tc-app .tc-nav-item[aria-current='page'] { background: var(--tc-primary-soft); color: var(--tc-primary); font-weight: 650; }
.tc-app .tc-nav-item:hover { color: var(--tc-primary); background: var(--tc-surface-alt); }
.tc-app .tc-app-footer { display: flex; flex-direction: column; gap: var(--tc-space-3); align-items: center; text-align: center; margin: var(--tc-space-6) var(--tc-space-4) 0; font-size: 11px; color: var(--tc-muted); }
.tc-app .tc-app-footer a { min-height: 48px; display: inline-flex; align-items: center; }
.tc-app .tc-login { max-width: 480px; text-align: center; margin: var(--tc-space-8) auto; padding: var(--tc-space-10) var(--tc-space-6); }
.tc-app .tc-login-symbol { display: grid; place-items: center; width: 72px; height: 72px; border-radius: var(--tc-radius-4); background: var(--tc-primary-soft); color: var(--tc-primary); margin: 0 auto var(--tc-space-6); }
.tc-app .tc-login-symbol .tc-icon { width: 36px; height: 36px; }
.tc-app .tc-login h1 { margin-top: var(--tc-space-3); }
.tc-app .tc-login .tc-button { width: 100%; margin-top: var(--tc-space-6); }
.tc-app[data-view='focus'] { padding-bottom: var(--tc-space-6); }
.tc-app[data-view='focus'] .tc-app-header { display: none; }
.tc-app .tc-main--focus { max-width: 760px; padding-top: var(--tc-space-4); }
.tc-app .tc-focus-top { display: flex; justify-content: space-between; align-items: center; gap: var(--tc-space-4); }
.tc-app .tc-focus { text-align: center; margin-top: var(--tc-space-6); }
.tc-app .tc-focus h1 { margin-top: var(--tc-space-2); font-size: 26px; }
.tc-app .tc-focus-meta { display: flex; align-items: center; justify-content: center; gap: var(--tc-space-4); color: var(--tc-muted); font-size: 13px; margin-top: var(--tc-space-4); }
.tc-app .tc-recitation { margin-top: var(--tc-space-8); padding: var(--tc-space-8) var(--tc-space-5); border: 1px solid var(--tc-border); border-radius: var(--tc-radius-4); background: var(--tc-surface); }
.tc-app .tc-recitation-notes { border-top: 1px solid var(--tc-border); padding-top: var(--tc-space-5); margin-top: var(--tc-space-6); font-size: 14px; }
.tc-app .tc-counter { display: flex; flex-direction: column; margin: var(--tc-space-6) 0; gap: var(--tc-space-1); }
.tc-app .tc-counter-value { font-size: 64px; font-weight: 500; color: var(--tc-primary); font-variant-numeric: tabular-nums; line-height: 1.1; }
.tc-app .tc-counter-controls { display: flex; align-items: center; justify-content: center; gap: var(--tc-space-2); margin: var(--tc-space-6) 0 var(--tc-space-3); }
.tc-app .tc-count-button { flex: 1; min-width: 0; max-width: 280px; font-size: 14px; }
.tc-app .tc-form { display: grid; gap: var(--tc-space-5); margin-top: var(--tc-space-5); }
.tc-app .tc-form-grid { display: grid; gap: var(--tc-space-5); }
@media (min-width: 480px) {
  .tc-app .tc-brand small { display: block; }
  .tc-app .tc-book-grid { gap: var(--tc-space-5); }
  .tc-app .tc-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tc-app .tc-today { flex-direction: row; padding: var(--tc-space-6); }
  .tc-app .tc-progress-ring { width: 164px; height: 164px; }
  .tc-app .tc-cover-kicker, .tc-app .tc-cover-label { font-size: 10px; }
  .tc-app .tc-book-cover { padding: var(--tc-space-6); }
  .tc-app .tc-week-days > div { font-size: 12px; }
  .tc-app .tc-day-dot { width: 36px; height: 36px; }
}
@media (min-width: 768px) {
  .tc-app { padding-bottom: var(--tc-space-8); }
  .tc-app .tc-app-header { padding: var(--tc-space-6) var(--tc-space-8); }
  .tc-app .tc-main { padding: 76px var(--tc-space-8) var(--tc-space-8); }
  .tc-app .tc-main--focus { padding-top: var(--tc-space-6); }
  .tc-app .tc-bottom-nav { position: absolute; top: 112px; bottom: auto; min-height: 52px; max-width: 816px; width: calc(100% - 64px); border: 0; border-radius: var(--tc-radius-2); box-shadow: none; padding: var(--tc-space-1); background: var(--tc-surface); }
  .tc-app .tc-nav-item { flex-direction: row; min-height: 48px; gap: var(--tc-space-2); font-size: 13px; }
  .tc-app .tc-event-card { display: grid; grid-template-columns: 240px minmax(0, 1fr); }
  .tc-app .tc-event-poster { flex-direction: column; }
  .tc-app .tc-event-poster > span:last-child { text-align: center; }
  .tc-app .tc-book-cover { max-height: 360px; }
  .tc-app .tc-app-footer { flex-direction: row; justify-content: center; gap: var(--tc-space-6); }
  .tc-app .tc-toast { bottom: var(--tc-space-6); }
}
@media (min-width: 1024px) {
  .tc-app .tc-app-header { min-height: 104px; }
  .tc-app .tc-brand { font-size: 17px; }
  .tc-app .tc-today { padding: var(--tc-space-8); }
  .tc-app .tc-progress-ring { width: 184px; height: 184px; }
}
@media (min-width: 1280px) { .tc-app .tc-app-header { padding-inline: var(--tc-space-12); } }
/* The Elementor widget owns the page title; retain Blocksy's site header/footer. */
body.tc-companion-page .hero-section:has(> .entry-header) { display: none; }
