:root{
    --ettc-bg:#f6f8fb;
    --ettc-surface:#fff;
    --ettc-ink:#0f172a;
    --ettc-muted:#64748b;
    --ettc-line:#e2e8f0;
    --ettc-primary:#0f172a;
    --ettc-radius:24px;
    --ettc-shell:min(1120px, calc(100vw - 28px));
    --ettc-shadow:0 18px 45px rgba(15,23,42,.10);
    --ettc-safe-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--ettc-bg);color:var(--ettc-ink);font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;line-height:1.55;}
a{color:inherit;}
img{max-width:100%;height:auto;}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important;}
.screen-reader-text:focus{clip:auto!important;clip-path:none;height:auto;left:12px;top:12px;width:auto;z-index:100000;background:#fff;border-radius:999px;padding:10px 14px;box-shadow:var(--ettc-shadow);}
.ettc-shell{width:var(--ettc-shell);margin-inline:auto;}
.ettc-site-header{position:sticky;top:0;z-index:1000;background:rgba(246,248,251,.88);backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid rgba(148,163,184,.25);}
.admin-bar .ettc-site-header{top:32px;}
.ettc-header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-block:10px;}
.ettc-brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0;}
.ettc-brand-logo img{width:42px;height:42px;object-fit:contain;border-radius:14px;}
.ettc-brand-mark{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#0f172a;color:#fff;font-weight:900;}
.ettc-brand-text{display:grid;line-height:1.1;min-width:0;}
.ettc-brand-text strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw;}
.ettc-brand-text small{color:var(--ettc-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw;}
.ettc-menu-toggle{border:1px solid var(--ettc-line);background:#fff;border-radius:999px;min-height:44px;padding:0 16px;font-weight:800;color:var(--ettc-ink);}
.ettc-primary-nav{display:none;position:absolute;left:14px;right:14px;top:calc(100% + 8px);background:#fff;border:1px solid var(--ettc-line);box-shadow:var(--ettc-shadow);border-radius:22px;padding:8px;}
.ettc-primary-nav.is-open{display:block;}
.ettc-primary-nav ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;}
.ettc-primary-nav a{display:flex;min-height:44px;align-items:center;padding:10px 12px;border-radius:16px;text-decoration:none;font-weight:800;color:#334155;}
.ettc-primary-nav a:hover,.ettc-primary-nav a:focus{background:#f1f5f9;color:#0f172a;}
.ettc-site-main{padding-block:18px 110px;}
.ettc-page-header{padding-block:14px 6px;}
.ettc-page-header h1{font-size:clamp(2rem,8vw,4rem);line-height:1;letter-spacing:-.05em;margin:0;}
.ettc-page-content,.ettc-front-content{display:grid;gap:18px;}
.ettc-content-stack{display:grid;gap:18px;}
.ettc-content-card,.ettc-starter-panel{background:#fff;border:1px solid rgba(148,163,184,.25);border-radius:var(--ettc-radius);box-shadow:var(--ettc-shadow);padding:clamp(18px,5vw,34px);}
.ettc-content-card h1,.ettc-starter-panel h1{font-size:clamp(2rem,8vw,4.4rem);line-height:1;letter-spacing:-.05em;margin-top:0;}
.ettc-kicker{margin:0 0 8px;color:#0369a1;font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;}
.ettc-site-footer{border-top:1px solid rgba(148,163,184,.25);background:#fff;padding-block:24px calc(24px + var(--ettc-safe-bottom));}
.ettc-footer-inner{display:grid;gap:12px;color:#64748b;font-size:.92rem;}
.ettc-footer-inner p{margin:0;}
.ettc-footer-inner ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px;}
.ettc-theme-app-page .ettc-page-header{display:none;}
.ettc-theme-app-page .ettc-site-main{padding-top:12px;}
.ettc-theme-app-page .ettc-page-content,.ettc-theme-app-page .ettc-front-content{width:min(1120px, calc(100vw - 22px));}
.ettc-theme-app-page .entry-content > *{margin-block-start:0;}
@media (max-width: 782px){
    .admin-bar .ettc-site-header{top:46px;}
    .ettc-theme-app-page .ettc-site-header{position:sticky;}
    .ettc-theme-app-page .ettc-site-main{padding-bottom:calc(104px + var(--ettc-safe-bottom));}
}
@media (min-width: 900px){
    .ettc-menu-toggle{display:none;}
    .ettc-primary-nav{display:block;position:static;background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;}
    .ettc-primary-nav ul{display:flex;align-items:center;gap:6px;}
    .ettc-primary-nav a{min-height:42px;padding-inline:14px;}
    .ettc-footer-inner{grid-template-columns:1fr auto;align-items:center;}
}
@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}
}


/* Monetized app compatibility */
.excelttc-theme-app-page .excelttc-plan-badge{box-shadow:0 8px 20px rgba(15,23,42,.08)}
.excelttc-theme-app-page .excelttc-upgrade-notice{max-width:100%}
.excelttc-theme-app-page .excelttc-plan-grid{align-items:stretch}


/* v1.1.0 support for plugin runtime health cards */
.excelttc-health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.excelttc-health-card{border-left:5px solid #16a34a}.excelttc-health-card.is-fail{border-left-color:#dc2626}

/* v1.1.0 Client Portal compatibility */
.excelttc-client-portal .excelttc-kicker{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .65rem;background:#eef2ff;color:#3730a3;font-weight:800;font-size:.78rem}.excelttc-portal-invoice-panel .excelttc-actions{display:flex;flex-wrap:wrap;gap:.65rem}.excelttc-portal-preview{overflow:auto}.excelttc-portal-message-form button,.excelttc-portal-lookup-form button{min-height:46px}


/* v1.1.3 admin-controlled brand colour compatibility */
.ettc-brand-mark{background:var(--ettc-primary);color:#fff}
.ettc-site-header{background:color-mix(in srgb,var(--ettc-bg) 88%,#fff)}
.ettc-content-card,.ettc-starter-panel,.ettc-primary-nav{background:var(--ettc-surface);color:var(--ettc-ink)}
.ettc-primary-nav a:hover,.ettc-primary-nav a:focus{background:var(--ettc-primary);color:#fff}
@supports not (color: color-mix(in srgb, #000 10%, #fff)){.ettc-site-header{background:rgba(246,248,251,.88)}}

/* v1.1.3: Ensure plugin mobile bottom navigation is only visible on phone-size screens. */
@media (min-width: 783px){.excelttc-app-bottom-nav{display:none!important;}}
@media (max-width: 782px){.excelttc-app-bottom-nav{display:grid;}}
