/* TaskEsc visual system / 2026: unified with tenant Kanban reference.
   Applies only presentation; no changes to authorization or business data. */
:root{
 --te-bg:#080b10;--te-sidebar:#0b1016;--te-surface:#0e151d;
 --te-card:#101820;--te-field:#14202b;--te-stroke:#293845;
 --te-stroke-strong:#40576b;--te-text:#edf2f8;--te-muted:#8d9fae;
 --te-primary:#597d99;--te-primary-hover:#7196b3;--te-purple:#9078b3;
 --te-good:#78bba6;--te-warn:#d0a776;--te-danger:#cb8692;
 color-scheme:dark;
}
body:not(.landing-page):not(.plans-page):not(.master-page){
 --bg:var(--te-bg);--bg-soft:#0b1016;--surface:var(--te-surface);
 --surface-2:var(--te-card);--surface-3:var(--te-field);
 --surface-4:#1a2733;--line:var(--te-stroke);--line-strong:var(--te-stroke-strong);
 --text:var(--te-text);--muted:var(--te-muted);--success:var(--te-good);
 --warning:var(--te-warn);--danger:var(--te-danger);
}
body:not(.landing-page):not(.plans-page):not(.master-page) .app,
body:not(.landing-page):not(.plans-page):not(.master-page) .main{background:var(--te-bg)}
body:not(.landing-page):not(.plans-page):not(.master-page) .sidebar{
 background:var(--te-sidebar);border-color:#27333e
}
body:not(.landing-page):not(.plans-page):not(.master-page) .topbar{
 background:#0b1118f5;border-color:#25333e
}
body:not(.landing-page):not(.plans-page):not(.master-page) .nav-btn.active{
 background:#16212c;border-color:#2c4356;color:#f0f6fa
}
body:not(.landing-page):not(.plans-page):not(.master-page) :is(.panel,.stat-card,.kanban-col,.task-card,.chart-card){
 border-color:var(--te-stroke)
}
/* Shared form readability and keyboard focus */
:is(.master-page,.plans-page,.landing-page) :is(button,a,input,select,textarea):focus-visible,
body:not(.master-page):not(.landing-page):not(.plans-page) :is(button,a,input,select,textarea):focus-visible{
 outline:2px solid #95bbd7;outline-offset:2px
}
:is(.master-page,.plans-page,.landing-page) ::selection{background:#426c8b;color:white}
/* Master shell respects the same 202px fixed left rail as user workspaces.
   Avoid heading being clipped underneath the sidebar at desktop zoom. */
body.master-page{--bg:var(--te-bg);--surface:var(--te-surface);--surface-2:var(--te-card);
 --line:var(--te-stroke);--text:var(--te-text);--muted:var(--te-muted);background:var(--te-bg)
}
.master-page .master-app{display:grid;grid-template-columns:202px minmax(0,1fr);min-width:0;background:var(--te-bg)}
.master-page .master-app .sidebar{
 grid-column:1;grid-row:1;width:202px;min-width:0;max-width:none;flex:initial;
 position:sticky;top:0;height:100dvh;padding:14px 9px;
 background:var(--te-sidebar);border-right:1px solid var(--te-stroke);overflow-y:auto
}
.master-page .master-app .main{
 grid-column:2;grid-row:1;min-width:0;width:100%;max-width:100%;
 background:var(--te-bg)
}
.master-page .master-app .topbar{
 background:#0c121aeb;border-color:var(--te-stroke);padding-inline:clamp(14px,2.3vw,28px);
 min-height:65px;height:65px
}
.master-page .master-app .page-heading{min-width:0}
.master-page .master-app .page-heading h2{font-size:18px;line-height:1.2;letter-spacing:-.035em}
.master-page .master-app .content{max-width:1560px;margin:0 auto;padding:clamp(16px,2.3vw,28px)}
.master-page .master-app .sidebar .brand{font-size:15px;margin:0 4px 11px;padding:5px 6px 14px}
.master-page .master-app .sidebar .brand-logo{width:31px;height:31px}
.master-page .master-nav .nav-btn{min-height:37px!important;padding:8px!important;font-size:12px;border-radius:7px!important}
.master-page .master-nav .nav-btn.active{
 background:#182635!important;border-color:#365067!important;box-shadow:inset 2px 0 #7399b7
}
.master-page .master-nav .nav-icon{color:#839db3}
.master-page .master-nav-label{color:#8294a6;padding-inline:9px}
.master-page .master-search{padding-inline:0}
.master-page .master-search-field{background:#121e29;border-color:var(--te-stroke)}
.master-page .master-search-field:focus-within{border-color:#799eb9;box-shadow:0 0 0 3px #749aba21}
.master-page .master-welcome,.master-page .panel,.master-page .ms-panel,
.master-page .master-kpi,.master-page .master-mini,.master-page .mc-plan-card,.master-page .mc-customer-row,
.master-page .master-inner-shell{
 border-color:var(--te-stroke);border-radius:9px!important;box-shadow:none
}
.master-page .master-welcome{background:linear-gradient(115deg,#142330,#101821);padding:20px 22px}
.master-page .master-welcome h3{font-size:20px}
.master-page .master-eyebrow,.master-page .master-kpi-label{color:#91abc1}
.master-page .master-quick-action,.master-page .primary{
 background:#29445b;color:#f2f7fc;border:1px solid #46647e;border-radius:7px
}
.master-page :is(.master-quick-action,.primary):hover{background:#3e607c;border-color:#759cba}
.master-page .master-account-avatar{background:#405e7b;color:white}
.master-page :is(.input,.select,input,textarea,select):not([type=checkbox]):not([type=radio]){
 border-color:#304353;background:#121f2b;color:#f0f4f8;border-radius:6px
}
.master-page .master-inner-tab.active{background:#274259;border-color:#3e5d74}
.master-page .master-app .sidebar-bottom{background:transparent}
@media(max-width:720px){
 .master-page .master-app{display:block}
 .master-page .master-app .sidebar{
  position:fixed;inset:0 auto 0 0;z-index:105;width:min(286px,86vw);
  transform:translateX(-110%);transition:transform .2s ease;box-shadow:0 16px 40px #0009
 }
 .master-page .master-app.menu-open .sidebar{transform:translateX(0)}
 .master-page .master-app .main{width:100%}
 .master-page .master-app .topbar{height:auto;min-height:63px;padding-inline:12px}
 .master-page .master-app .content{padding:14px 12px}
}
/* Public pages now match internal TaskEsc blue/charcoal UI. */
body.landing-page,body.plans-page{
 color:var(--te-text);background:var(--te-bg);font-family:Inter,ui-sans-serif,system-ui,sans-serif
}
.landing-page h1,.landing-page h2,.landing-page h3{font-family:Inter,ui-sans-serif,system-ui,sans-serif}
.landing-page .site-bg{
 background:radial-gradient(ellipse 44% 37% at 74% 20%,#395c7933,transparent),
 radial-gradient(ellipse 50% 45% at 20% 28%,#364f6420,transparent)
}
.landing-page .site-header{border-bottom-color:#243440}
.landing-page .logo-mark{
 background:linear-gradient(140deg,#759cba,#324f69);color:#f4faff;box-shadow:0 6px 25px #142c4266
}
.landing-page :is(.eyebrow,.live-dot,.logo-dot,.feature-no,.value-items b,.proof-icon,.text-link,.plan-tag){color:#9ebbd2}
.landing-page h1 span,.landing-page .section-lead h2 em,.landing-page .how h2 em{color:#99b8d0}
.landing-page .btn{background:#537b9a;border-color:#658cac;color:#f5f9fc;box-shadow:none}
.landing-page .btn:hover{background:#678eaa;border-color:#97b9d1}
.landing-page .btn-quiet{background:#141c25;border-color:#334755;color:#dce5ee}
.landing-page .btn-quiet:hover{background:#1d2b38}
.landing-page .hero-art .preview{background:#101820;border:1px solid #344856}
.landing-page .column{background:#111923;border-color:#2b3b49}
.landing-page .ticket{background:#17222c;border-color:#314150}
.landing-page .ticket.accent{border-color:#577895}
.landing-page .preview-note{background:#2f536b21;border-color:#41617b}
.landing-page .sparkle,.landing-page .note-arrow{color:#8fb2ce}
.landing-page .value-strip{background:#111923}
.landing-page .feature,.landing-page .plan,.landing-page .plans-empty{
 background:#111923;border-color:var(--te-stroke)
}
.landing-page .how{background:#101820;border-block-color:#2c3e4b}
.landing-page .feature-icon{background:#1e3446;border-color:#35536c;color:#a3bfd8}
.landing-page .last-cta{background:radial-gradient(ellipse 50% 58% at 50% 65%,#2c53763d,transparent),#10171f}
.landing-page .demo-live,.landing-page .chip.orange{color:#8fb4d0}
.landing-page #demo-kanban .column.demo-over{background:#223d52;border-color:#638fb1}
.landing-page #demo-kanban .ticket:hover,.landing-page #demo-kanban .ticket:focus-visible{border-color:#88afce}
.landing-page .demo-avatar{background:#2d4860;border-color:#4e7492;color:#d9e9f3}
.landing-page .footer{border-top:1px solid #2a3946}
.plans-page{font-family:Inter,ui-sans-serif,system-ui,sans-serif}
.plans-page header{border-bottom:1px solid #283b4b;padding-bottom:20px}
.plans-page header strong{font-size:19px;letter-spacing:-.03em}
.plans-page header a{background:#172532;border-color:#3b5369;border-radius:7px}
.plans-page header a:hover{background:#23394b}
.plans-page .lead{color:#a7b7c5}
.plans-page .card,.plans-page .empty{background:#111923;border:1px solid #2c4051;border-radius:9px}
.plans-page .name,.plans-page .price{color:#eef5fb}
.plans-page .feature{border-bottom-color:#2c4051;color:#c4d3df}
.plans-page footer{color:#97aabb}
@media(prefers-reduced-motion:reduce){
 .master-page *,.landing-page *,.plans-page *{scroll-behavior:auto!important}
}
/* The single global WhatsApp session has a first-class, readable control. */
.master-page .ms-wpp-console{border-top:0;margin-top:0;padding-top:0;gap:13px}
.master-page .ms-wpp-status{
 display:flex;align-items:center;gap:15px;padding:18px;
 border:1px solid #355066;background:#142330;border-radius:9px;min-width:0
}
.master-page .ms-wpp-dot{width:11px;height:11px;border-radius:50%;flex:0 0 11px}
.master-page .ms-wpp-online{background:#67c59f;box-shadow:0 0 0 5px #67c59f1e}
.master-page .ms-wpp-idle{background:#d7a979;box-shadow:0 0 0 5px #d7a9791f}
.master-page .ms-wpp-offline,.master-page .ms-wpp-unknown{background:#bd8591}
.master-page .ms-wpp-status-copy{min-width:0;flex:1}
.master-page .ms-wpp-status-copy strong{display:block;font-size:16px;color:#f1f6fa;margin-bottom:5px}
.master-page .ms-wpp-status-copy p{font-size:12px;line-height:1.6;color:#acbfcd;margin:0;overflow-wrap:anywhere}
.master-page .ms-wpp-last-update{white-space:nowrap;color:#879eaf;font-size:10px}
.master-page .ms-wpp-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.master-page .ms-wpp-actions button{min-height:39px;border-radius:6px;padding:8px 12px;font-size:12px}
.master-page .ms-wpp-actions .danger{border-color:#8a5963;color:#e6b7c2;background:#261a22}
.master-page .ms-wpp-actions .danger:hover{background:#452530}
.master-page .ms-wpp-feedback{font-size:12px;color:#c0d0dc;min-height:19px}
.master-page .ms-wpp-qr:empty{display:none}
.master-page .ms-wpp-qr:not(:empty){background:#0e1822;border:1px dashed #3b5770;border-radius:10px;padding:20px;display:grid;justify-items:start;gap:12px}
.master-page .ms-wpp-qr img{background:white;border-radius:7px;max-width:270px;max-height:270px}
.master-page .ms-wpp-qr p{font-size:11px;color:#acc0cd;margin:0}
.master-page .ms-wpp-advanced{border:1px solid #2b3b49;border-radius:9px;padding:0 16px;margin-top:16px;background:#0e151d}
.master-page .ms-wpp-advanced summary{cursor:pointer;font-size:12px;font-weight:700;color:#adbfce;padding:15px 0}
.master-page .ms-wpp-advanced[open] summary{border-bottom:1px solid #2a3945;margin-bottom:14px}
.master-page .ms-wpp-advanced .ms-form{padding-bottom:16px}
@media(max-width:660px){
 .master-page .ms-wpp-status{align-items:flex-start;flex-wrap:wrap}
 .master-page .ms-wpp-last-update{margin-left:26px}
 .master-page .ms-wpp-actions button{width:100%}
}

/* Standalone invitation and installation utilities. */
body.invite-page,body.install-page{color:var(--te-text);background:var(--te-bg);font-family:Inter,ui-sans-serif,system-ui,sans-serif}
.invite-page main,.install-page main.box{background:var(--te-surface);border:1px solid var(--te-stroke);border-radius:9px;box-shadow:none}
.invite-page h1,.install-page h1{color:#eef4f8;letter-spacing:-.04em}
.invite-page p,.install-page p{color:#9eb0be}
.invite-page label,.install-page label{color:#c2cfdb}
.invite-page input,.install-page input{background:#131f2a;border-color:#35495a;color:#edf4f8;border-radius:6px}
.invite-page button,.invite-page a.link,.install-page button{background:#3c6483;color:#f4f8fa;border-radius:6px;border:1px solid #5d819f}
.invite-page button:hover,.invite-page a.link:hover,.install-page button:hover{background:#517b9b}
.invite-page .notice{background:#352823;border-color:#b99773;color:#e6d4c5}
.invite-page .notice.success{background:#152f29;border-color:#67ae96;color:#c7e9da}
.install-page .box{max-width:680px}
.install-page .msg{border:1px solid var(--te-stroke)}

/* Public branding uses the same real TaskEsc mark as the application. */
.landing-page .logo-mark.logo-image{display:block;flex:0 0 34px;width:34px;height:34px;object-fit:contain;background:#101923;border:1px solid #344b5e;border-radius:7px;padding:4px;box-shadow:none}
