:root{--app-header-h:66px;--app-tabs-h:68px;--app-max:820px;--app-rail:color-mix(in srgb,var(--accent) 12%,var(--border));--app-pressed:color-mix(in srgb,var(--accent) 14%,var(--surface));--app-shadow:0 12px 34px color-mix(in srgb,var(--text-primary) 9%,transparent)}body:has(.ect-app-shell),html:has(.ect-app-shell){height:100%;overflow:hidden;overscroll-behavior:none}body:has(.ect-app-shell)>.skip-link{z-index:500}body:has(.ect-app-shell)>.site-footer,body:has(.ect-app-shell)>.site-header{display:none}body:has(.ect-app-shell)>#main-content{height:100dvh}body:has(.ect-app-shell)>#ect-pwa-runtime{position:fixed;z-index:450;right:14px;bottom:calc(var(--app-tabs-h) + env(safe-area-inset-bottom) + 14px);left:14px}.ect-app-shell{position:relative;display:grid;height:100dvh;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:var(--canvas);color:var(--text-primary)}.ect-app-shell:before{position:fixed;z-index:0;inset:0;pointer-events:none;background-image:radial-gradient(circle at 15% 5%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 31%),repeating-linear-gradient(90deg,color-mix(in srgb,var(--border) 22%,transparent) 0 1px,transparent 1px 52px);content:"";opacity:.72}.ect-app-header{position:relative;z-index:20;display:flex;min-height:calc(var(--app-header-h) + env(safe-area-inset-top));align-items:center;justify-content:space-between;gap:10px;padding:calc(9px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 9px max(12px,env(safe-area-inset-left));border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 4px 18px color-mix(in srgb,var(--text-primary) 6%,transparent)}.ect-app-header__brand{display:flex;min-width:0;min-height:44px;align-items:center;gap:9px}.ect-app-header__brand .brand-logo{width:34px;flex:0 0 34px}.ect-app-header__brand>span:last-child{display:grid;min-width:0;line-height:1.17}.ect-app-header__brand strong{overflow:hidden;color:var(--text-primary);font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.ect-app-header__brand small{overflow:hidden;color:var(--text-tertiary);font-size:.63rem;text-overflow:ellipsis;white-space:nowrap}.ect-app-header__actions{display:flex;flex:0 0 auto;align-items:center;gap:3px}.ect-app-header__control,.ect-app-language>summary{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);cursor:pointer}.ect-app-header__control:hover,.ect-app-language>summary:hover{background:var(--surface-subtle);color:var(--accent)}.ect-app-header__control[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.ect-app-language{position:relative}.ect-app-language>summary{list-style:none;font-size:.75rem;font-weight:820}.ect-app-language>summary::-webkit-details-marker{display:none}.ect-app-language>div{position:absolute;z-index:30;top:calc(100% + 7px);right:0;display:grid;width:194px;gap:4px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-elevated);box-shadow:var(--shadow-menu)}.ect-app-language>div>span,.ect-app-language>div>strong{padding-inline:8px}.ect-app-language>div>span{color:var(--success);font-size:.7rem}.ect-app-language button{display:flex;min-height:44px;align-items:center;justify-content:space-between;padding:8px;border:0;border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-secondary);text-align:left}.ect-app-language button small{color:var(--text-tertiary)}.ect-app-offline{display:inline-flex;min-height:34px;align-items:center;gap:5px;padding-inline:8px;border:1px solid var(--warning);border-radius:999px;color:var(--warning);font-size:.66rem;font-weight:800}.ect-app-scroll{position:relative;z-index:1;min-width:0;overflow-x:clip;overflow-y:auto;overscroll-behavior-y:contain;padding:0 max(16px,env(safe-area-inset-right)) calc(30px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));scrollbar-gutter:stable}.ect-app-screen{width:min(100%,var(--app-max));margin-inline:auto;padding-block:24px 38px}.ect-app-screen>*{min-width:0}.ect-app-screen h1{margin-bottom:14px;font-size:clamp(2rem,9vw,3.6rem);line-height:1.01;overflow-wrap:anywhere}.ect-app-screen h2{font-size:clamp(1.18rem,4.6vw,1.65rem);letter-spacing:-.025em}.ect-app-screen-heading{max-width:650px;margin-bottom:22px}.ect-app-screen-heading>p:last-child{max-width:58ch;margin-bottom:0}.ect-app-kicker{margin-bottom:8px;color:var(--accent);font-size:.68rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.ect-app-tabs{z-index:30;min-height:calc(var(--app-tabs-h) + env(safe-area-inset-bottom));grid-template-columns:repeat(5,minmax(0,1fr));padding:3px max(5px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(5px,env(safe-area-inset-left));border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 97%,transparent);box-shadow:0 -8px 28px color-mix(in srgb,var(--text-primary) 7%,transparent)}.ect-app-tabs,.ect-app-tabs a{position:relative;display:grid}.ect-app-tabs a{min-width:0;min-height:60px;place-content:center;place-items:center;gap:3px;border-radius:var(--radius-sm);color:var(--text-tertiary);font-size:.63rem;font-weight:760}.ect-app-tabs a:before{position:absolute;top:2px;width:24px;height:3px;border-radius:3px;background:var(--accent);content:"";opacity:0;transform:scaleX(.35);transition:opacity .15s ease,transform .15s ease}.ect-app-tabs a.is-current{background:var(--accent-soft);color:var(--accent)}.ect-app-tabs a.is-current:before{opacity:1;transform:scaleX(1)}.ect-app-tabs .ect-app-icon{width:23px;height:23px}.ect-app-action:active,.ect-app-header__control:active,.ect-app-tabs a:active{background:var(--app-pressed);transform:translateY(1px)}.ect-app-migration{position:fixed;z-index:110;right:max(14px,env(safe-area-inset-right));bottom:calc(var(--app-tabs-h) + env(safe-area-inset-bottom) + 12px);left:max(14px,env(safe-area-inset-left));display:grid;width:min(calc(100% - 28px),var(--app-max));grid-template-columns:minmax(0,1fr) 44px;gap:12px;align-items:start;margin-inline:auto;padding:15px;border:1px solid color-mix(in srgb,var(--warning) 55%,var(--border));border-radius:var(--radius-md);background:var(--surface-warning);box-shadow:var(--shadow-menu)}.ect-app-migration strong{color:var(--text-primary);font-size:.83rem}.ect-app-migration p{margin:4px 0 0;font-size:.76rem;line-height:1.48}.ect-app-migration button{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);cursor:pointer}.ect-app-welcome{position:relative;padding:25px 20px 22px;overflow:hidden;border:1px solid var(--app-rail);border-radius:var(--radius-lg);background:var(--surface-elevated);box-shadow:var(--app-shadow)}.ect-app-welcome:after{position:absolute;right:-42px;bottom:-58px;width:168px;height:168px;border:22px solid color-mix(in srgb,var(--accent) 8%,transparent);border-radius:50%;content:"";pointer-events:none}.ect-app-welcome>p:not(.ect-app-kicker){max-width:57ch}.ect-app-welcome .ect-app-action{position:relative;z-index:1;margin-top:20px}.ect-app-tour-link{position:relative;z-index:1;display:inline-flex;min-height:44px;align-items:center;gap:6px;margin-top:9px;color:var(--accent);font-size:.76rem;font-weight:820}.ect-app-home>section+section{margin-top:30px}.ect-app-section-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:13px}.ect-app-section-heading h2{margin:0 0 3px}.ect-app-section-heading p{margin:0;font-size:.8rem}.ect-app-section-heading>span{flex:0 0 auto;color:var(--success);font-size:.68rem;font-weight:800}.ect-app-action-grid{display:grid;gap:9px}.ect-app-action{display:grid;min-height:74px;grid-template-columns:42px minmax(0,1fr) 24px;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-primary);transition:border-color .15s ease,background-color .15s ease,transform .15s ease}.ect-app-action:hover{border-color:var(--accent);background:var(--accent-soft)}.ect-app-action>.ect-app-icon:first-child{display:grid;width:42px;height:42px;padding:8px;border-radius:11px;background:var(--surface-subtle);color:var(--accent)}.ect-app-action span{display:grid;min-width:0}.ect-app-action small{margin-top:3px;color:var(--text-tertiary);font-size:.72rem;line-height:1.35}.ect-app-action--primary{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.ect-app-action--primary:hover{background:var(--accent-hover);color:var(--text-on-accent)}.ect-app-action--primary>.ect-app-icon:first-child{background:color-mix(in srgb,var(--surface) 18%,transparent);color:currentColor}.ect-app-action--primary small{color:var(--text-on-accent)}.ect-app-progress>div:last-child{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--border)}.ect-app-progress article{display:grid;min-height:92px;align-content:center;padding:13px;background:var(--surface)}.ect-app-progress strong{color:var(--accent);font-size:1.22rem}.ect-app-progress span{color:var(--text-tertiary);font-size:.68rem}.ect-app-boundary{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;margin-top:28px;padding:17px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.ect-app-boundary>.ect-app-icon{color:var(--accent)}.ect-app-boundary p{margin:3px 0 8px;font-size:.77rem}.ect-app-boundary a{display:inline-flex;min-height:44px;align-items:center;gap:5px;color:var(--accent);font-size:.78rem;font-weight:800}.ect-app-search{display:grid;min-height:50px;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:7px;padding-inline:12px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface)}.ect-app-search:focus-within{outline:3px solid var(--focus);outline-offset:2px}.ect-app-search .ect-app-icon{color:var(--text-tertiary)}.ect-app-search input{min-width:0;height:46px;border:0;outline:0;background:transparent;color:var(--text-primary)}.ect-app-filter{display:flex;gap:7px;margin:13px -16px 0;overflow-x:auto;padding:1px 16px 8px;scrollbar-width:thin}.ect-app-kind-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:13px;padding:4px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.ect-app-kind-tabs button{min-height:44px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;font-weight:780}.ect-app-kind-tabs button[aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.ect-app-filter button{flex:0 0 auto;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);cursor:pointer;font-size:.72rem;font-weight:760}.ect-app-filter button.is-current{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.ect-app-result-count{margin:8px 0 10px;color:var(--text-tertiary);font-size:.72rem;font-weight:760}.ect-app-service-list{display:grid;gap:9px}.ect-app-service-list article{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:15px 12px 12px 15px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.ect-app-service-list article>a{min-width:0}.ect-app-service-list article>a>span,.ect-app-service-view>header>span{color:var(--accent);font-size:.64rem;font-weight:830;letter-spacing:.07em;text-transform:uppercase}.ect-app-service-list h2{margin:4px 0 5px;font-size:1rem}.ect-app-service-list p{display:-webkit-box;margin:0;overflow:hidden;font-size:.76rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.ect-app-service-list article>button{display:grid;min-width:54px;min-height:48px;place-items:center;gap:1px;padding:5px;border:0;border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--accent);cursor:pointer;font-size:.61rem;font-weight:790}.ect-app-service-list article>button[aria-pressed=true]{background:var(--accent-soft);color:var(--success)}.ect-app-back{display:inline-flex;min-height:44px;align-items:center;gap:6px;margin-bottom:16px;padding:7px 0;border:0;background:transparent;color:var(--accent);cursor:pointer;font-weight:760}.ect-app-service-view>header{padding:22px 0 26px;border-bottom:1px solid var(--border)}.ect-app-service-view>header h1{margin-top:5px}.ect-app-inline-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.ect-app-button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:7px;padding:10px 15px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);cursor:pointer;font-weight:780;line-height:1.2}.ect-app-button--primary{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.ect-app-button--quiet:hover{border-color:var(--accent);color:var(--accent)}.ect-app-button:disabled{cursor:not-allowed;opacity:.5}.ect-app-service-facts{display:grid;gap:1px;margin-block:20px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--border)}.ect-app-service-facts article{padding:16px;background:var(--surface)}.ect-app-service-facts h2{margin-bottom:6px;font-size:.94rem}.ect-app-service-facts p{margin:0;font-size:.78rem}.ect-app-diagram{margin:22px 0}.ect-app-diagram img,.ect-app-diagram picture{display:block;width:100%}.ect-app-diagram__dark{display:none!important}html[data-theme=dark] .ect-app-diagram__light{display:none}html[data-theme=dark] .ect-app-diagram__dark{display:block!important}.ect-app-diagram img{height:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.ect-app-diagram figcaption{margin-top:8px;color:var(--text-tertiary);font-size:.69rem}.ect-app-workflow{margin-block:24px}.ect-app-workflow ol{display:grid;gap:8px;margin:0;padding:0;list-style:none;counter-reset:app-workflow}.ect-app-workflow li{display:grid;min-height:48px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);counter-increment:app-workflow}.ect-app-workflow li:before{display:grid;width:28px;height:28px;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);content:counter(app-workflow);font-size:.72rem;font-weight:830}.ect-app-readiness-launch{display:grid;width:100%;min-height:68px;grid-template-columns:minmax(0,1fr) 32px;align-items:center;gap:12px;padding:12px 15px;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--surface-accent);color:var(--text-primary);cursor:pointer;text-align:left}.ect-app-readiness-launch span{display:grid}.ect-app-readiness-launch small{margin-top:3px;color:var(--text-secondary);font-size:.7rem}.ect-app-quiz{margin-top:12px}.ect-app-quiz fieldset{margin:0 0 13px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.ect-app-quiz legend{display:grid;width:100%;grid-template-columns:25px minmax(0,1fr);gap:7px;color:var(--text-primary);font-weight:780}.ect-app-quiz legend span{color:var(--accent)}.ect-app-quiz fieldset>p{margin:5px 0 11px;font-size:.72rem}.ect-app-quiz label{display:block;cursor:pointer}.ect-app-quiz label+label{margin-top:6px}.ect-app-quiz input{position:absolute;opacity:0}.ect-app-quiz label>span{display:grid;min-height:52px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-subtle)}.ect-app-quiz label small{margin-top:3px;color:var(--text-tertiary);font-size:.68rem}.ect-app-quiz input:checked+span{border-color:var(--accent);background:var(--accent-soft)}.ect-app-quiz input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}.ect-app-quiz-result{margin-top:12px;padding:20px;border:1px solid var(--success);border-radius:var(--radius-md);background:var(--surface-success)}.ect-app-quiz-result h2{margin-bottom:8px}.ect-app-quiz-result small{display:block;margin-top:13px;color:var(--text-tertiary)}.ect-app-shell .finder-app{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:none}.ect-app-shell .finder-app__header{padding:14px}.ect-app-shell .finder-step{padding:17px}.ect-app-shell .finder-options{grid-template-columns:1fr}.ect-app-shell .finder-option{min-height:68px}.ect-app-shell .finder-result{padding:20px}.ect-app-shell .finder-result__details{grid-template-columns:1fr}.ect-app-shell .finder-app .button{min-height:46px}.ect-app-loading{height:180px;border-radius:var(--radius-md);background:linear-gradient(100deg,var(--surface-subtle),var(--surface),var(--surface-subtle));background-size:200% 100%;animation:ect-app-loading 1.2s ease infinite}.ect-app-empty{display:grid;min-height:310px;place-items:center;align-content:center;padding:25px;border:1px dashed var(--border-strong);border-radius:var(--radius-md);text-align:center}.ect-app-empty>.ect-app-icon{margin-bottom:10px;color:var(--accent)}.ect-app-empty h2{margin-bottom:4px}.ect-app-empty p{max-width:38ch}.ect-app-saved-group+.ect-app-saved-group{margin-top:27px}.ect-app-saved-group>h2{margin-bottom:10px}.ect-app-saved-group article{display:grid;min-height:70px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 12px;border-top:1px solid var(--border);background:var(--surface)}.ect-app-saved-group article:last-child{border-bottom:1px solid var(--border)}.ect-app-saved-group article a{display:grid;min-width:0}.ect-app-saved-group article small{margin-top:3px;overflow:hidden;color:var(--text-tertiary);font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.ect-app-saved-group article button{min-height:44px;padding-inline:10px;border:0;background:transparent;color:var(--danger);cursor:pointer;font-size:.72rem;font-weight:760}.ect-app-project-form{padding:17px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.ect-app-project-form>div label,.ect-app-project-form>label{display:grid;gap:6px;margin-bottom:14px}.ect-app-project-form label>span{font-size:.78rem;font-weight:780}.ect-app-project-form select,.ect-app-project-form textarea{width:100%;min-height:48px;padding:10px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary)}.ect-app-project-form textarea{resize:vertical}.ect-app-project-form>div{display:grid;gap:0 12px}.ect-app-project-summary{margin-top:18px;padding:17px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.ect-app-project-summary>div:first-child{display:flex;justify-content:space-between;gap:12px}.ect-app-project-summary h2{margin-bottom:0}.ect-app-project-summary>div:first-child span{color:var(--text-tertiary);font-size:.7rem}.ect-app-project-summary pre{overflow:auto;margin:14px 0;padding:13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font:.72rem/1.55 var(--font-body),Arial,sans-serif;white-space:pre-wrap}.ect-app-project-summary>p{min-height:24px;margin:8px 0 0;color:var(--success);font-size:.72rem}.ect-app-project-summary>small{display:block;color:var(--text-tertiary)}.ect-app-related-tools{display:grid;gap:8px;margin-top:18px}.ect-app-related-tools a{display:grid;min-height:64px;align-content:center;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.ect-app-related-tools span{margin-top:2px;color:var(--text-tertiary);font-size:.7rem}.ect-app-settings-list{display:grid;gap:9px}.ect-app-settings-list article{display:grid;min-height:82px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.ect-app-settings-list h2{margin-bottom:3px;font-size:.94rem}.ect-app-settings-list p{margin:0;font-size:.73rem}.ect-app-settings-list article>span{color:var(--accent);font-weight:820}.ect-app-danger,.ect-app-settings-list article>a,.ect-app-settings-list article>button:not(.ect-app-button){min-height:44px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;font-weight:760;white-space:nowrap}.ect-app-settings-list article>a{display:inline-flex;align-items:center}.ect-app-danger{border-color:var(--danger);color:var(--danger)}.ect-app-settings-status{min-height:24px;margin:10px 0;color:var(--success);font-size:.75rem}.ect-app-version{display:grid;margin-top:28px;padding-top:16px;border-top:1px solid var(--border)}.ect-app-version span{color:var(--text-tertiary);font-size:.7rem}.ect-app-onboarding{position:fixed;z-index:600;inset:0;display:grid;place-items:end center;padding:max(18px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:var(--overlay)}.ect-app-onboarding__panel{width:min(100%,540px);padding:18px;border:1px solid var(--border);border-radius:24px;background:var(--surface-elevated);box-shadow:var(--shadow-menu)}.ect-app-onboarding__top{display:flex;min-height:44px;align-items:center;justify-content:space-between}.ect-app-onboarding__top .brand-logo{width:112px}.ect-app-onboarding__top button{min-height:44px;padding-inline:10px;border:0;background:transparent;color:var(--accent);cursor:pointer;font-weight:780}.ect-app-onboarding__visual{margin:18px 0}.ect-app-onboarding__visual .app-state-visual{margin:0;padding:12px}.ect-app-onboarding__visual .app-state-visual__flow{margin-top:10px}.ect-app-onboarding__visual .app-state-visual__flow i{margin-bottom:8px}.ect-app-onboarding h1{margin-bottom:12px;font-size:clamp(2rem,9vw,3.2rem);line-height:1;overflow-wrap:anywhere}.ect-app-onboarding>p{max-width:45ch}.ect-app-onboarding__progress{display:flex;gap:6px;margin-block:24px 18px}.ect-app-onboarding__progress span{width:28px;height:4px;border-radius:4px;background:var(--border-strong)}.ect-app-onboarding__progress span.is-active{background:var(--accent)}.ect-app-onboarding__actions{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:10px}.app-concept-asset{margin:26px 0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--app-shadow)}.app-concept-asset img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.app-concept-asset figcaption{padding:10px 12px;color:var(--text-tertiary);font-size:.68rem;line-height:1.45}.ect-app-tour__steps{display:grid;gap:10px}.ect-app-tour__steps .app-state-visual{margin:0}@keyframes ect-app-loading{to{background-position:-200% 0}}@media (min-width:560px){.ect-app-scroll{padding-inline:24px}.ect-app-screen{padding-block:32px 48px}.ect-app-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ect-app-action-grid .ect-app-action{min-height:128px;grid-template-columns:42px 1fr;align-content:start}.ect-app-action-grid .ect-app-action>.ect-app-icon:last-child{display:none}.ect-app-project-form>div,.ect-app-service-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.ect-app-onboarding{place-items:center}.ect-app-tour__steps{grid-template-columns:repeat(3,minmax(0,1fr))}.ect-app-tour__steps .app-state-visual__flow{grid-template-columns:1fr}.ect-app-tour__steps .app-state-visual__flow:before{display:none}}@media (min-width:900px){:root{--app-header-h:72px;--app-tabs-h:74px}.ect-app-header{padding-inline:max(28px,calc((100vw - var(--app-max)) / 2))}.ect-app-tabs{width:min(100%,560px);margin-inline:auto;border:1px solid var(--border);border-bottom:0;border-radius:18px 18px 0 0}.ect-app-shell{background:color-mix(in srgb,var(--canvas) 96%,var(--surface))}}@media (max-width:374px){.ect-app-header__brand .brand-logo{width:30px;flex-basis:30px}.ect-app-header__brand strong{font-size:.8rem}.ect-app-header__brand small{display:none}.ect-app-header__actions{gap:0}.ect-app-header__control,.ect-app-language>summary{width:44px}.ect-app-offline{position:absolute;top:calc(100% + 6px);left:8px}.ect-app-progress article{padding:9px}.ect-app-progress strong{font-size:1rem}.ect-app-tabs a{font-size:.58rem}.ect-app-tabs .ect-app-icon{width:22px;height:22px}.ect-app-inline-actions .ect-app-button{width:100%}}@media (max-height:700px){.ect-app-onboarding{place-items:stretch center}.ect-app-onboarding__panel{max-height:calc(100dvh - 24px);overflow-y:auto}.ect-app-onboarding h1{font-size:2rem}}.ect-app-onboarding h1:focus{outline:none}.ect-app-screen .workspace-tool-page>header{margin-bottom:24px}.ect-app-screen .workspace-private-page>header h1,.ect-app-screen .workspace-tool-page>header h1{max-width:16ch;font-size:clamp(2rem,8vw,3.3rem)}.ect-app-screen .workspace-brief-form,.ect-app-screen .workspace-meeting-form,.ect-app-screen .workspace-module-contract>*,.ect-app-screen .workspace-state{box-shadow:none}.ect-app-screen .workspace-module-contract aside a{display:inline-flex;min-height:44px;align-items:center}@media (max-width:559px){.ect-app-screen .workspace-assessment fieldset{grid-template-columns:1fr}.ect-app-screen .workspace-assessment fieldset>div{width:100%}.ect-app-screen .workspace-assessment label{flex:1 1;min-width:0}.ect-app-screen .workspace-brief-grid,.ect-app-screen .workspace-demo-flow,.ect-app-screen .workspace-module-contract,.ect-app-screen .workspace-role-matrix{grid-template-columns:1fr}.ect-app-screen .workspace-tool-actions .button{width:100%}}@media (prefers-reduced-motion:reduce){.ect-app-shell:before{background-image:none}.ect-app-action,.ect-app-tabs a:before{transition:none}.ect-app-loading{animation:none}}:root{--app-type-meta:.8125rem;--app-type-label:.8125rem;--app-type-body:.9375rem;--app-type-control:.9375rem;--app-type-card-title:1.125rem;--app-type-section:clamp(1.25rem,1.7vw,1.5rem);--app-type-screen:clamp(1.75rem,2.4vw,2.125rem);--app-type-login-title:clamp(2rem,2.65vw,2.25rem);--app-type-login-marketing:clamp(2.25rem,3.25vw,2.75rem);--app-leading-body:1.6;--app-leading-heading:1.18;--app-measure:65ch;--app-measure-compact:52ch;--app-card-pad:clamp(1rem,1.7vw,1.5rem);--app-section-space:clamp(1.5rem,3vw,2.5rem)}.ect-app-screen{padding-block:var(--app-section-space)}.ect-app-screen .workspace-private-page>header h1,.ect-app-screen .workspace-tool-page>header h1,.ect-app-screen h1{max-width:18ch;margin-bottom:.875rem;font-size:var(--app-type-screen);line-height:var(--app-leading-heading);letter-spacing:-.035em}.ect-app-screen h2{font-size:var(--app-type-section);line-height:1.25}.ect-app-screen h3,.ect-app-settings-list h2{font-size:var(--app-type-card-title);line-height:1.3}.ect-app-button,.ect-app-screen dd,.ect-app-screen input,.ect-app-screen li,.ect-app-screen p,.ect-app-screen select,.ect-app-screen textarea{font-size:var(--app-type-body);line-height:var(--app-leading-body)}.ect-app-screen-heading{max-width:var(--app-measure);margin-bottom:1.5rem}.ect-app-kicker,.ect-app-language>div>span,.ect-app-offline,.ect-app-project-summary>div:first-child span,.ect-app-project-summary>p,.ect-app-related-tools span,.ect-app-settings-status,.ect-app-version span{font-size:var(--app-type-meta)}.ect-app-header__brand strong{font-size:.9375rem}.ect-app-header__brand small,.ect-app-tabs a{font-size:.75rem}.ect-app-danger,.ect-app-language button,.ect-app-language>summary,.ect-app-settings-list article>a,.ect-app-settings-list article>button:not(.ect-app-button){font-size:var(--app-type-control)}.ect-app-action,.ect-app-onboarding__panel,.ect-app-progress article,.ect-app-project-summary,.ect-app-settings-list article{padding:var(--app-card-pad)}.ect-app-onboarding h1{font-size:var(--app-type-screen);line-height:var(--app-leading-heading)}.ect-app-onboarding__panel>p{max-width:var(--app-measure-compact);font-size:var(--app-type-body)}@media (max-width:559px){:root{--app-type-screen:clamp(1.5rem,7vw,1.75rem);--app-type-login-title:clamp(1.625rem,8vw,1.875rem);--app-type-login-marketing:clamp(1.75rem,8.5vw,1.875rem)}.ect-app-screen{padding-block:1.5rem 2rem}.ect-app-screen .workspace-private-page>header h1,.ect-app-screen .workspace-tool-page>header h1,.ect-app-screen h1{max-width:none}}.header-portal-link{display:inline-flex;min-height:44px;align-items:center;padding-inline:10px;color:var(--text-primary);font-size:.75rem;font-weight:820;white-space:nowrap}.header-portal-link:hover{color:var(--accent)}.header-portal-link .ect-icon{width:18px;height:18px;flex:0 0 18px}.mobile-portal-link{color:var(--accent)!important}.site-footer__contact>div{display:flex;flex-wrap:wrap;gap:8px}.site-footer__contact a:not(.button){color:var(--accent-inverse);text-decoration:underline;text-underline-offset:3px}.client-portal-home>.shell{display:grid;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);gap:clamp(42px,7vw,92px);align-items:center}.client-portal-home h2{max-width:15ch}.client-portal-home p{max-width:64ch}.client-portal-home ul{display:grid;gap:12px;margin:26px 0;padding:0;list-style:none}.client-portal-home li{display:flex;gap:12px;align-items:center;color:var(--text-primary);font-weight:680}.client-portal-home li svg{flex:0 0 auto;color:var(--accent)}.client-portal-home>.shell>div:first-child>small{display:block;margin-top:18px;color:var(--text-tertiary)}.client-portal-visual{overflow:hidden;width:100%;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md)}.client-portal-visual>header{display:flex;min-height:54px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-subtle);color:var(--text-primary);font-size:.74rem;font-weight:780}.client-portal-visual>header span{display:flex;align-items:center;gap:8px}.client-portal-visual>header i{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 15%,transparent)}.client-portal-visual>header em{padding:4px 8px;border:1px solid var(--border);border-radius:999px;color:var(--accent);font-size:.66rem;font-style:normal;letter-spacing:.06em;text-transform:uppercase}.client-portal-visual__grid{display:grid;grid-template-columns:138px 1fr;min-height:400px}.client-portal-visual__grid>aside{display:grid;align-content:start;gap:4px;padding:18px 10px;border-right:1px solid var(--border);background:color-mix(in srgb,var(--surface-subtle) 72%,var(--surface))}.client-portal-visual__grid>aside span{padding:9px 10px;border-radius:7px;color:var(--text-tertiary);font-size:.69rem;font-weight:730}.client-portal-visual__grid>aside .is-active{background:var(--accent-soft);color:var(--accent)}.client-portal-visual__grid>section{padding:clamp(18px,3vw,30px)}.client-portal-visual__phase{display:grid;grid-template-columns:1fr auto;gap:3px 14px;align-items:center}.client-portal-visual__phase span{color:var(--text-tertiary);font-size:.68rem;font-weight:760;text-transform:uppercase}.client-portal-visual__phase strong{grid-row:2;font-size:clamp(1.5rem,3vw,2.35rem);letter-spacing:-.04em}.client-portal-visual__phase em{grid-column:2;grid-row:1/3;padding:6px 9px;border:1px solid var(--border);border-radius:999px;color:var(--warning);font-size:.63rem;font-style:normal;font-weight:780}.client-portal-visual__progress{margin-top:24px;padding:16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-subtle)}.client-portal-visual__progress>small,.client-portal-visual__progress>strong{display:block}.client-portal-visual__progress>span{display:block;height:7px;margin:10px 0 8px;overflow:hidden;border-radius:999px;background:var(--border)}.client-portal-visual__progress>span i{display:block;width:58%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-secondary))}.client-portal-visual__progress>small{color:var(--text-tertiary);font-size:.67rem}.client-portal-visual__records{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.client-portal-visual__records article{min-width:0;padding:12px;border:1px solid var(--border);border-radius:8px}.client-portal-visual__records i{display:block;color:var(--accent);font-size:.65rem;font-style:normal;font-weight:820}.client-portal-visual__records small,.client-portal-visual__records strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-portal-visual__records strong{margin-top:18px;font-size:.7rem}.client-portal-visual__records small{color:var(--text-tertiary);font-size:.62rem}.client-portal-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:38px;background:var(--border);border:1px solid var(--border)}.client-portal-benefits article{min-height:230px;padding:26px;background:var(--surface)}.client-portal-benefits svg{color:var(--accent)}.client-portal-benefits h3{margin-top:42px}.client-portal-answer{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(38px,7vw,100px)}.client-portal-answer dl{margin:0;border-top:1px solid var(--border)}.client-portal-answer dl div{padding:18px 0;border-bottom:1px solid var(--border)}.client-portal-answer dt{color:var(--accent);font-weight:810}.client-portal-answer dd{margin:4px 0 0;color:var(--text-secondary)}.client-portal-cta{display:flex;gap:36px;align-items:flex-end;justify-content:space-between}.client-portal-cta>div:first-child{max-width:760px}.portal-demo{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-md)}.portal-demo__notice{display:grid;grid-template-columns:28px auto 1fr;gap:12px;align-items:center;padding:16px 20px;background:var(--surface-inverse);color:var(--text-inverse)}.portal-demo__notice span{color:color-mix(in srgb,var(--text-inverse) 70%,transparent);font-size:.82rem}.portal-demo__tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--border)}.portal-demo__tabs button{min-width:120px;min-height:48px;padding:10px 18px;border:0;border-right:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-weight:780;cursor:pointer}.portal-demo__tabs button[aria-selected=true]{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 -3px var(--accent)}.portal-demo>section{display:grid;grid-template-columns:.78fr 1.22fr;gap:50px;min-height:430px;padding:clamp(28px,5vw,60px);align-items:center}.portal-demo>section header p{color:var(--accent);font-size:.72rem;font-weight:820;letter-spacing:.09em;text-transform:uppercase}.portal-demo>section header h2{font-size:clamp(2rem,4vw,3.5rem)}.portal-demo-progress,.portal-demo-records{padding:24px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.portal-demo-progress>div:first-child{display:flex;justify-content:space-between}.portal-demo-progress>div:first-child span{color:var(--text-tertiary);font-size:.78rem}.portal-demo-progress ol{display:grid;gap:10px;margin:22px 0 0;padding:0;list-style:none}.portal-demo-progress li{padding:10px 12px;border-left:3px solid var(--border-strong);color:var(--text-secondary)}.portal-demo-progress li.is-done{border-color:var(--success);color:var(--success)}.portal-demo-progress li.is-current{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.portal-demo-records{display:grid;gap:10px}.portal-demo-records article{padding:18px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.portal-demo-records small,.portal-demo-records span,.portal-demo-records strong{display:block}.portal-demo-records span{color:var(--accent);font-size:.68rem;font-weight:800;text-transform:uppercase}.portal-demo-records strong{margin:16px 0 2px}.portal-demo-records small{color:var(--text-tertiary)}body:has(.portal-login),body:has(.portal-shell){overflow:hidden}body:has(.portal-login)>.site-footer,body:has(.portal-login)>.site-header,body:has(.portal-shell)>.site-footer,body:has(.portal-shell)>.site-header{display:none!important}body:has(.portal-login)>#main-content,body:has(.portal-shell)>#main-content{min-height:100svh}.portal-shell{--portal-sidebar:260px;display:grid;min-height:100svh;grid-template-columns:var(--portal-sidebar) minmax(0,1fr);background:var(--canvas);color:var(--text-primary)}.portal-sidebar{position:sticky;top:0;display:flex;height:100svh;flex-direction:column;padding:18px 14px;border-right:1px solid var(--border);background:var(--surface)}.portal-sidebar__brand{display:flex;min-height:58px;align-items:center;gap:10px;padding:6px 8px 16px;border-bottom:1px solid var(--border)}.portal-sidebar__brand .brand-logo{width:38px}.portal-sidebar__brand small,.portal-sidebar__brand strong{display:block}.portal-sidebar__brand strong{font-size:.9rem}.portal-sidebar__brand small{color:var(--text-tertiary);font-size:.66rem}.portal-sidebar nav{display:grid;gap:3px;margin-top:18px}.portal-sidebar nav a,.portal-sidebar>form button{display:flex;min-height:44px;align-items:center;gap:11px;padding:9px 11px;border:0;border-radius:8px;background:transparent;color:var(--text-secondary);font-size:.82rem;font-weight:720;cursor:pointer}.portal-sidebar nav a.is-current,.portal-sidebar nav a:hover,.portal-sidebar>form button:hover{background:var(--accent-soft);color:var(--accent)}.portal-sidebar__account{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;margin-top:auto;padding:14px 8px;border-top:1px solid var(--border)}.portal-sidebar__account>span{display:grid;width:36px;height:36px;place-items:center;border-radius:9px;background:var(--surface-inverse);color:var(--text-inverse);font-weight:830}.portal-sidebar__account small,.portal-sidebar__account strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-sidebar__account strong{font-size:.76rem}.portal-sidebar__account small{color:var(--text-tertiary);font-size:.64rem}.portal-main{min-width:0;height:100svh;overflow-y:auto}.portal-content{width:min(calc(100% - 64px),1380px);margin-inline:auto;padding:42px 0 80px}.portal-bottom-nav,.portal-mobile-header{display:none}.portal-page-header{display:flex;gap:30px;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.portal-page-header>div:first-child{max-width:850px}.portal-page-header p,.portal-panel header p{margin:0 0 5px;color:var(--accent);font-size:.69rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.portal-page-header h1{margin:0 0 10px;font-size:clamp(2.25rem,4vw,4.1rem)}.portal-page-header>div:first-child>span{color:var(--text-secondary)}.portal-page-header>div:last-child{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.portal-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text-primary);font-size:.78rem;font-weight:800;cursor:pointer}.portal-button:hover{border-color:var(--accent);color:var(--accent)}.portal-button--primary{border-color:var(--accent);background:var(--accent);color:var(--text-on-accent)}.portal-button--primary:hover{background:var(--accent-hover);color:var(--text-on-accent)}.portal-metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.portal-metric-grid article{display:grid;grid-template-columns:30px 1fr;min-height:132px;gap:4px 12px;padding:18px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-sm)}.portal-metric-grid svg{grid-row:1/3;color:var(--accent)}.portal-metric-grid span{color:var(--text-tertiary);font-size:.72rem}.portal-metric-grid strong{font-size:1.9rem;line-height:1}.portal-dashboard-grid,.portal-project-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.portal-panel{min-width:0;padding:22px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.portal-panel--span{grid-row:span 2}.portal-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.portal-panel>header h2{margin:0;font-size:1.35rem;letter-spacing:-.025em}.portal-panel>header>a{display:inline-flex;min-height:44px;align-items:center;color:var(--accent);font-size:.76rem;font-weight:800}.portal-project-list{display:grid;gap:8px}.portal-project-list>a{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:18px;align-items:center;padding:16px;border:1px solid var(--border);border-radius:8px}.portal-compact-list a:hover,.portal-project-list>a:hover{border-color:var(--accent);background:var(--accent-soft)}.portal-project-list h3,.portal-project-list p,.portal-project-list span{margin:0}.portal-project-list>a>div:first-child>span{color:var(--accent);font-size:.64rem;font-weight:820;letter-spacing:.06em}.portal-project-list h3{margin:4px 0 2px}.portal-project-list p{font-size:.73rem}.portal-progress small,.portal-progress strong{display:block}.portal-progress strong{font-size:.76rem}.portal-progress>span{display:block;height:6px;margin:7px 0;overflow:hidden;border-radius:999px;background:var(--border)}.portal-progress>span i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-secondary))}.portal-progress small{color:var(--text-tertiary);font-size:.65rem}.portal-compact-list{display:grid;gap:7px}.portal-compact-list a{display:block;padding:13px;border:1px solid var(--border);border-radius:8px}.portal-compact-list small,.portal-compact-list strong{display:block}.portal-compact-list strong{margin:7px 0 2px;font-size:.83rem}.portal-compact-list small{color:var(--text-tertiary);font-size:.65rem}.portal-status{display:inline-flex;width:fit-content;align-items:center;padding:4px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface-subtle);color:var(--text-secondary);font-size:.62rem;font-style:normal;font-weight:820;letter-spacing:.03em}.portal-status--active,.portal-status--approved,.portal-status--clean,.portal-status--completed,.portal-status--resolved{border-color:color-mix(in srgb,var(--success) 35%,var(--border));background:var(--surface-success);color:var(--success)}.portal-status--in_progress,.portal-status--in_review,.portal-status--new{background:var(--accent-soft);color:var(--accent)}.portal-status--blocked,.portal-status--disabled,.portal-status--rejected{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.portal-status--high,.portal-status--pending,.portal-status--waiting_for_client{background:var(--surface-warning);color:var(--warning)}.portal-empty{padding:32px 20px;border:1px dashed var(--border-strong);border-radius:8px;text-align:center}.portal-empty svg{color:var(--accent)}.portal-empty h2{margin:12px 0 6px;font-size:1.15rem}.portal-empty p{max-width:52ch;margin-inline:auto;font-size:.8rem}.portal-empty .portal-button{margin-top:8px}.portal-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.portal-project-card{min-width:0;padding:22px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.portal-project-card:hover{border-color:var(--accent);transform:translateY(-2px)}.portal-project-card__top{display:flex;align-items:center;justify-content:space-between;gap:12px}.portal-project-card__top>span{color:var(--accent);font-size:.67rem;font-weight:850;letter-spacing:.07em}.portal-project-card h2{margin:34px 0 5px;font-size:1.3rem}.portal-project-card>p{min-height:42px;font-size:.78rem}.portal-project-card dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.portal-project-card dt{color:var(--text-tertiary);font-size:.62rem;text-transform:uppercase}.portal-project-card dd{margin:3px 0 0;font-size:.75rem;font-weight:740}.portal-back{display:inline-flex;min-height:44px;align-items:center;margin-bottom:8px;color:var(--accent);font-size:.78rem;font-weight:800}.portal-project-summary,.portal-ticket-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;margin-bottom:14px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--border)}.portal-project-summary article,.portal-ticket-summary>div{min-width:0;padding:16px;background:var(--surface)}.portal-project-summary span,.portal-project-summary strong,.portal-ticket-summary span,.portal-ticket-summary strong{display:block}.portal-project-summary span,.portal-ticket-summary>div>span:first-child{color:var(--text-tertiary);font-size:.62rem;text-transform:uppercase}.portal-project-summary strong,.portal-ticket-summary>div>strong{margin-top:6px;overflow-wrap:anywhere;font-size:.78rem}.portal-timeline{margin:0;padding:0;list-style:none}.portal-timeline li{position:relative;display:grid;grid-template-columns:22px 1fr;gap:12px;padding-bottom:22px}.portal-timeline li:before{position:absolute;top:17px;bottom:-1px;left:7px;width:1px;background:var(--border-strong);content:""}.portal-timeline li:last-child:before{display:none}.portal-timeline li>span{position:relative;z-index:1;width:15px;height:15px;margin-top:3px;border:3px solid var(--surface);border-radius:50%;background:var(--border-strong);box-shadow:0 0 0 1px var(--border-strong)}.portal-timeline li.is-complete>span{background:var(--success);box-shadow:0 0 0 1px var(--success)}.portal-timeline small{color:var(--accent);font-size:.62rem;font-weight:820}.portal-timeline h3,.portal-timeline p{margin:2px 0 0}.portal-timeline p{font-size:.73rem}.portal-record-list{display:grid;gap:8px}.portal-record-list article{padding:14px;border:1px solid var(--border);border-radius:8px}.portal-record-list span{color:var(--accent);font-size:.63rem;font-weight:820;text-transform:uppercase}.portal-record-list h3{margin:10px 0 3px;font-size:.86rem}.portal-record-list p{margin:0;font-size:.73rem;white-space:pre-wrap}.portal-link-stack{display:grid;gap:8px}.portal-link-stack a{display:block;min-height:64px;padding:13px;border:1px solid var(--border);border-radius:8px}.portal-link-stack span,.portal-link-stack strong{display:block}.portal-link-stack span{color:var(--text-tertiary);font-size:.69rem}.portal-admin-tools{margin-top:14px;padding:24px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-subtle)}.portal-admin-tools>header p{color:var(--accent);font-size:.69rem;font-weight:840;text-transform:uppercase}.portal-admin-tools>header h2{font-size:1.5rem}.portal-admin-tools>div{display:grid;grid-template-columns:1fr 1fr;gap:14px}.portal-admin-tools form{padding:20px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.portal-form{display:grid;gap:16px}.portal-form--wide{width:min(100%,900px);padding:clamp(22px,4vw,40px);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.portal-form>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portal-admin-tools label,.portal-form label,.portal-upload label{display:grid;gap:6px;min-width:0}.portal-admin-tools label>span,.portal-form label>span,.portal-upload label>span{color:var(--text-primary);font-size:.72rem;font-weight:780}.portal-admin-tools input,.portal-admin-tools select,.portal-admin-tools textarea,.portal-file-list select,.portal-form input,.portal-form select,.portal-form textarea,.portal-upload input,.portal-upload select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:7px;background:var(--canvas);color:var(--text-primary)}.portal-admin-tools textarea,.portal-form textarea{resize:vertical}.portal-admin-tools small,.portal-form small,.portal-upload small{color:var(--text-tertiary);font-size:.68rem}.portal-form aside{padding:14px;border-left:3px solid var(--accent);background:var(--accent-soft)}.portal-form aside p{margin:4px 0 0;font-size:.75rem}.portal-check{display:flex!important;min-height:44px;grid-template-columns:22px 1fr;align-items:center}.portal-check input{width:20px;min-height:20px}.portal-password>div{display:grid;grid-template-columns:1fr auto}.portal-password>div input{border-radius:7px 0 0 7px}.portal-password>div button{min-width:64px;border:1px solid var(--border-strong);border-left:0;border-radius:0 7px 7px 0;background:var(--surface-subtle);color:var(--accent);font-size:.72rem;font-weight:800;cursor:pointer}.portal-notice{margin-bottom:16px;padding:14px 16px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle);color:var(--text-secondary)}.portal-notice--success{border-color:color-mix(in srgb,var(--success) 35%,var(--border));background:var(--surface-success);color:var(--success)}.portal-notice--error{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger) 9%,var(--surface));color:var(--danger)}.portal-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.portal-table{width:100%;min-width:820px;border-collapse:collapse}.portal-table td,.portal-table th{padding:14px 16px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.portal-table th{background:var(--surface-subtle);color:var(--text-tertiary);font-size:.65rem;letter-spacing:.05em;text-transform:uppercase}.portal-table td{color:var(--text-secondary);font-size:.76rem}.portal-table td:first-child span,.portal-table td:first-child strong{display:block}.portal-table td:first-child strong{color:var(--text-primary)}.portal-table td:first-child span{color:var(--accent);font-size:.65rem}.portal-ticket-summary{grid-template-columns:repeat(4,1fr)}.portal-account-grid,.portal-ticket-layout,.portal-two-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.portal-long-copy{white-space:pre-wrap}.portal-conversation{display:grid;gap:9px;margin:0;padding:0;list-style:none}.portal-conversation li{padding:15px;border:1px solid var(--border);border-radius:8px}.portal-conversation li.is-internal{border-color:color-mix(in srgb,var(--warning) 35%,var(--border));background:var(--surface-warning)}.portal-conversation li>div{display:flex;gap:12px;align-items:baseline;justify-content:space-between}.portal-conversation small,.portal-conversation span{color:var(--text-tertiary);font-size:.65rem}.portal-conversation p{margin:10px 0 5px;white-space:pre-wrap}.portal-reply-form{width:min(100%,900px);margin-top:14px;padding:24px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.portal-file-list{display:grid;gap:10px;margin-top:14px}.portal-file-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.portal-file-list>article>div:first-child>span{color:var(--accent);font-size:.64rem;font-weight:800}.portal-file-list h2{margin:5px 0 2px;font-size:1rem}.portal-file-list p{margin:0;font-size:.72rem}.portal-file-list>article>div:nth-child(2){display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}.portal-file-list form{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:10px;padding-top:14px;border-top:1px solid var(--border)}.portal-upload{display:grid;grid-template-columns:1fr 1.4fr auto;gap:12px;align-items:end}.portal-definition-list{margin:0 0 22px}.portal-definition-list div{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:11px 0;border-bottom:1px solid var(--border)}.portal-definition-list dt{color:var(--text-tertiary);font-size:.7rem}.portal-definition-list dd{margin:0;font-size:.78rem;font-weight:750}.portal-help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.portal-help-grid article{min-height:230px;padding:26px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.portal-help-grid article>span{color:var(--accent);font-weight:840}.portal-help-grid h2{margin-top:36px;font-size:1.35rem}.portal-help-grid a{color:var(--accent);font-weight:800;text-decoration:underline;text-underline-offset:3px}.portal-help-grid address span{display:block;font-style:normal}.portal-admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}.portal-admin-list{display:grid;gap:7px}.portal-admin-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:8px}.portal-admin-list span,.portal-admin-list strong{display:block}.portal-admin-list span{color:var(--text-tertiary);font-size:.68rem}.portal-audit-list p{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;margin:0;padding:10px 0;border-bottom:1px solid var(--border);font-size:.69rem}.portal-audit-list span,.portal-audit-list time{color:var(--text-tertiary)}.portal-login{display:grid;height:100svh;min-height:0;grid-template-areas:"brand form";grid-template-columns:minmax(360px,.92fr) minmax(520px,1.08fr);overflow:hidden;background:var(--canvas)}.portal-login__brand{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(38px,6vw,88px);background:radial-gradient(circle at 80% 10%,rgba(47,157,255,.22),transparent 32%),var(--surface-inverse);color:var(--text-inverse);grid-area:brand;min-height:0;overflow-y:auto}.portal-login__brand .brand-logo{width:210px;min-height:44px}.portal-login__brand>div{max-width:650px}.portal-login__brand>div>p:first-child{color:var(--accent-inverse);font-size:.72rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.portal-login__brand h2{max-width:11ch;color:var(--text-inverse);font-size:clamp(2.7rem,5vw,5.8rem);line-height:.94;letter-spacing:-.055em}.portal-login__brand p{color:color-mix(in srgb,var(--text-inverse) 72%,transparent)}.portal-login__brand ul{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.portal-login__brand li{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid rgba(255,255,255,.16);border-radius:7px;font-size:.72rem}.portal-login__form{grid-area:form;display:flex;width:100%;min-height:0;flex-direction:column;justify-content:center;overflow-y:auto;scroll-padding-block:24px;padding:clamp(24px,6vw,76px) clamp(24px,7vw,96px);background:radial-gradient(circle at 85% 10%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 34%),linear-gradient(145deg,color-mix(in srgb,var(--surface) 90%,transparent),var(--canvas))}.portal-login__form>*{width:min(100%,560px);margin-inline:auto}.portal-login__header{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:16px;margin-bottom:clamp(24px,5vh,52px)}.portal-login__header>a{display:inline-flex;min-width:44px;min-height:44px;align-items:center}.portal-login__header .brand-logo{width:132px}.portal-login__utility{display:flex;min-height:44px;align-items:center;gap:8px}.portal-login__utility>span{color:var(--text-tertiary);font-size:.7rem;font-weight:820}.portal-login__utility .ect-app-header__control{width:44px;height:44px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text-primary)}.portal-login__intro h1{max-width:10ch;margin:5px 0 10px;font-size:clamp(2.5rem,5vw,4.8rem);line-height:.96;letter-spacing:-.055em}.portal-login__intro>p:last-child{max-width:49ch;margin:0}.portal-login__form form{display:grid;gap:14px;margin:22px auto}.portal-login__form label{display:grid;gap:6px}.portal-login__form label span{font-size:.74rem;font-weight:780}.portal-login__form input{min-height:48px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text-primary)}.portal-login__form form>.portal-button{width:100%;min-height:48px}.portal-login__form form>.portal-button:disabled{cursor:wait;opacity:.72}.portal-login__form aside{padding:16px;border:1px solid var(--border);border-radius:8px;background:var(--surface-subtle)}.portal-login__form aside p{margin:4px 0;font-size:.74rem}.portal-login__form aside a{display:inline-flex;min-height:44px;align-items:center;gap:6px;color:var(--accent);font-weight:800}.portal-login__security{margin-top:14px;color:var(--text-tertiary);font-size:.68rem}.portal-kicker{color:var(--accent);font-size:.7rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.portal-content>.app-state-visual{margin:0 0 18px}.portal-tour-callout{margin:-5px 0 18px;padding:11px 14px;border-left:3px solid var(--accent);color:var(--text-secondary);font-size:.78rem}.portal-tour-callout a{color:var(--accent);font-weight:820;text-decoration:underline;text-underline-offset:3px}.app-state-visual{--visual-line:var(--border-strong);margin:18px 0 0;padding:18px;border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(145deg,var(--surface),var(--surface-subtle));color:var(--text-primary)}.app-state-visual figcaption{display:grid;gap:2px}.app-state-visual figcaption span{color:var(--accent);font-size:.64rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.app-state-visual figcaption strong{font-size:1rem}.app-state-visual__flow{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.app-state-visual__flow:before{position:absolute;top:17px;right:12%;left:12%;height:1px;background:var(--visual-line);content:""}.app-state-visual__flow article{position:relative;display:grid;align-content:start;min-width:0;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.app-state-visual__flow i{display:grid;z-index:1;width:22px;height:22px;place-items:center;margin-bottom:18px;border-radius:50%;background:var(--accent);color:var(--text-on-accent);font-size:.58rem;font-style:normal;font-weight:850}.app-state-visual__flow small,.app-state-visual__flow strong{overflow-wrap:anywhere}.app-state-visual__flow strong{font-size:.72rem}.app-state-visual__flow small{margin-top:3px;color:var(--text-tertiary);font-size:.61rem;line-height:1.35}.portal-login__brand .app-state-visual{--visual-line:rgba(255,255,255,.2);border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.055);color:var(--text-inverse)}.portal-login__brand .app-state-visual figcaption span{color:var(--accent-inverse)}.portal-login__brand .app-state-visual__flow article{border-color:rgba(255,255,255,.14);background:rgba(4,19,36,.58);color:var(--text-inverse)}.portal-login__brand .app-state-visual__flow small{color:rgba(255,255,255,.66)}.contact-context--complete{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-context--complete address span{display:block;color:var(--text-primary);font-style:normal}.contact-context--complete a{color:var(--accent);font-weight:780}.contact-action-row{display:flex;flex-wrap:wrap;gap:8px 16px}@media (max-width:1180px){.client-portal-home>.shell{grid-template-columns:1fr 1fr;gap:34px}.client-portal-visual__grid{grid-template-columns:110px 1fr}.portal-content{width:min(calc(100% - 40px),1380px)}.portal-card-grid{grid-template-columns:repeat(2,1fr)}.portal-project-summary{grid-template-columns:repeat(3,1fr)}}@media (max-width:980px){.portal-shell{--portal-sidebar:220px}.portal-content{padding-top:30px}.portal-metric-grid{grid-template-columns:repeat(2,1fr)}.portal-dashboard-grid,.portal-project-layout{grid-template-columns:1fr}.portal-panel--span{grid-row:auto}.portal-project-list>a{grid-template-columns:1fr 200px}.portal-login{grid-template-columns:.82fr 1.18fr}.portal-login__brand{padding:42px}.client-portal-benefits{grid-template-columns:repeat(2,1fr)}}@media (max-width:820px){.client-portal-answer,.client-portal-home>.shell,.portal-demo>section{grid-template-columns:1fr}.client-portal-home h2{max-width:18ch}.client-portal-home .client-portal-visual{max-width:680px}.portal-shell{display:block}.portal-sidebar{display:none}.portal-main{height:100svh;padding-bottom:70px}.portal-mobile-header{position:sticky;z-index:20;top:0;display:flex;min-height:60px;align-items:center;justify-content:space-between;padding:8px 18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.portal-mobile-header>a{display:flex;min-height:44px;align-items:center;gap:9px;font-weight:800}.portal-mobile-header .brand-logo{width:32px}.portal-bottom-nav{position:fixed;z-index:30;right:0;bottom:0;left:0;display:grid;height:68px;grid-template-columns:repeat(5,1fr);padding:5px max(8px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid var(--border);background:var(--surface)}.portal-bottom-nav a{display:flex;min-width:0;min-height:52px;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-tertiary);font-size:.61rem;font-weight:760}.portal-bottom-nav a.is-current{color:var(--accent)}.portal-bottom-nav svg{width:21px;height:21px}.portal-content{width:min(calc(100% - 32px),760px);padding:26px 0 90px}.portal-login{display:block;height:100svh;overflow-y:auto;overscroll-behavior:contain}.portal-login__form{width:100%;min-height:100svh;justify-content:center;overflow:visible}.portal-login__brand{min-height:320px;overflow:visible}.portal-admin-grid,.portal-admin-tools>div{grid-template-columns:1fr}}@media (max-width:640px){.client-portal-benefits{grid-template-columns:1fr}.client-portal-benefits article{min-height:180px}.client-portal-visual__grid{grid-template-columns:1fr;min-height:0}.client-portal-visual__grid>aside{display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border)}.client-portal-visual__grid>aside span{flex:0 0 auto}.client-portal-visual__records{grid-template-columns:1fr}.client-portal-visual__records strong{margin-top:8px}.client-portal-cta,.portal-page-header{display:block}.client-portal-cta .button-row,.portal-page-header>div:last-child{margin-top:20px;justify-content:flex-start}.portal-demo__notice{grid-template-columns:24px 1fr}.portal-demo__notice span{grid-column:1/-1}.portal-demo>section{min-height:0;gap:22px}.portal-content{width:min(calc(100% - 24px),600px);padding-top:20px}.portal-page-header h1{font-size:clamp(2rem,12vw,3rem)}.portal-account-grid,.portal-card-grid,.portal-help-grid,.portal-metric-grid,.portal-project-summary,.portal-ticket-layout,.portal-ticket-summary,.portal-two-panel{grid-template-columns:1fr}.portal-metric-grid{grid-template-columns:repeat(2,1fr)}.portal-project-list>a{grid-template-columns:1fr}.portal-project-card{padding:18px}.portal-project-card h2{margin-top:24px}.portal-admin-tools form>div,.portal-form>div{grid-template-columns:1fr}.portal-form--wide,.portal-reply-form{padding:18px}.portal-file-list>article,.portal-upload{grid-template-columns:1fr}.portal-file-list>article>div:nth-child(2){justify-content:flex-start}.portal-file-list form{grid-template-columns:1fr}.portal-definition-list div{grid-template-columns:1fr;gap:2px}.portal-admin-list article{grid-template-columns:1fr auto}.portal-admin-list form{grid-column:1/-1}.portal-audit-list p{grid-template-columns:1fr;gap:2px}.portal-login__form{min-height:100svh;padding:max(14px,env(safe-area-inset-top)) 18px max(20px,env(safe-area-inset-bottom))}.portal-login__header{margin-bottom:18px}.portal-login__header .brand-logo{width:112px}.portal-login__intro h1{font-size:clamp(2.25rem,12vw,3.2rem)}.portal-login__form form{margin-block:16px;gap:11px}.portal-login__form aside{padding:12px 14px}.portal-login__form aside p{margin-bottom:0}.portal-login__security{margin-top:8px}.portal-login__brand{min-height:280px;padding:28px 22px}.portal-login__brand>.brand-logo,.portal-login__brand>ul{display:none}.portal-login__brand h2{font-size:2.55rem}.contact-context--complete{grid-template-columns:1fr}}@media (max-width:390px){.portal-content{width:min(calc(100% - 20px),370px)}.portal-mobile-header{padding-inline:12px}.portal-metric-grid{grid-template-columns:1fr}.portal-bottom-nav{padding-inline:2px}.portal-bottom-nav a{font-size:.56rem}.portal-panel{padding:16px}.portal-login__form{padding-inline:14px}.portal-login__intro h1{font-size:2.35rem}.portal-login__header{margin-bottom:12px}}@media (min-width:360px) and (max-width:820px) and (max-height:700px){.portal-login__form{justify-content:flex-start}.portal-login__intro h1{font-size:clamp(2.05rem,10vw,2.65rem)}.portal-login__intro>p:last-child{font-size:.78rem;line-height:1.4}.portal-login__form aside{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center}.portal-login__form aside a{grid-column:2;grid-row:1/3}}@media (prefers-reduced-motion:reduce){.client-portal-visual *,.portal-button,.portal-project-card{transition:none!important}.portal-project-card:hover{transform:none}}@media (min-width:981px) and (max-width:1320px){.header-portal-link{width:44px;min-width:44px;justify-content:center;padding-inline:0;border-radius:50%}.header-portal-link>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@media (max-width:980px){.header-portal-link.desktop-only{display:none!important}}.portal-content{width:min(calc(100% - 3rem),1280px);padding-block:2rem 3.5rem}.portal-page-header{margin-bottom:1.5rem}.portal-page-header h1{margin-bottom:.625rem;font-size:var(--app-type-screen);line-height:var(--app-leading-heading);letter-spacing:-.035em}.portal-admin-list span,.portal-admin-tools small,.portal-audit-list p,.portal-conversation small,.portal-conversation span,.portal-definition-list dt,.portal-file-list>article>div:first-child>span,.portal-form small,.portal-kicker,.portal-page-header p,.portal-panel header p,.portal-progress small,.portal-project-card dt,.portal-project-summary span,.portal-record-list span,.portal-status,.portal-ticket-summary>div>span:first-child,.portal-timeline small,.portal-upload small{font-size:var(--app-type-meta)}.portal-button,.portal-form input,.portal-form select,.portal-form textarea,.portal-login__form button,.portal-login__form input,.portal-password>div button,.portal-sidebar nav a,.portal-sidebar>form button,.portal-table td{font-size:var(--app-type-control)}.portal-sidebar__account small,.portal-sidebar__brand small{font-size:.75rem}.portal-sidebar__account strong,.portal-sidebar__brand strong{font-size:.875rem}.portal-bottom-nav a{font-size:.75rem}.portal-panel{padding:var(--app-card-pad)}.portal-panel>header{margin-bottom:1rem}.portal-admin-tools>header h2,.portal-help-grid h2,.portal-panel>header h2{font-size:var(--app-type-section);line-height:1.25}.portal-project-card{min-height:0;padding:var(--app-card-pad)}.portal-project-card h2{margin-top:1.5rem;font-size:var(--app-type-card-title)}.portal-compact-list small,.portal-compact-list strong,.portal-definition-list dd,.portal-empty p,.portal-file-list p,.portal-login__form aside p,.portal-login__security,.portal-project-card>p,.portal-project-list p,.portal-record-list p,.portal-timeline p,.portal-tour-callout{font-size:var(--app-type-body);line-height:var(--app-leading-body)}.portal-metric-grid strong{font-size:1.75rem}.portal-form--wide{width:min(100%,860px);padding:var(--app-card-pad)}.portal-admin-tools label>span,.portal-form label>span,.portal-upload label>span{font-size:var(--app-type-label)}.portal-tour-callout{margin-bottom:1.25rem;padding:.875rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--accent-soft)}.portal-login__brand{padding:clamp(2rem,4.5vw,4.5rem)}.portal-login__brand h2{max-width:13ch;font-size:var(--app-type-login-marketing);line-height:1.06;letter-spacing:-.045em}.portal-login__brand li{font-size:var(--app-type-meta)}.portal-login__form{padding:clamp(1.5rem,4vw,3.5rem) clamp(1.5rem,5vw,4.5rem)}.portal-login__form>div{width:min(100%,520px);margin-inline:auto}.portal-login__header{margin-bottom:clamp(1.25rem,3vh,2rem)}.portal-login__intro h1{font-size:var(--app-type-login-title);line-height:var(--app-leading-heading);letter-spacing:-.04em}.portal-login__intro>p:last-child{max-width:var(--app-measure-compact);font-size:var(--app-type-body);line-height:var(--app-leading-body)}.portal-login__form form{margin-block:1.25rem;gap:.75rem}.portal-login__form aside{padding:.875rem 1rem}@media (max-width:820px){.portal-content{width:min(calc(100% - 2rem),760px);padding-block:1.5rem 5.625rem}.portal-login__form{min-height:min(100svh,52rem);justify-content:flex-start}.portal-login__brand{min-height:13.75rem}}@media (max-width:640px){.portal-content{width:min(calc(100% - 1.5rem),600px)}.portal-login__intro h1,.portal-page-header h1{font-size:var(--app-type-login-title)}.portal-login__form{padding:max(.875rem,env(safe-area-inset-top)) 1.125rem max(1.25rem,env(safe-area-inset-bottom))}.portal-login__brand{min-height:13.75rem;padding:1.5rem 1.375rem}.portal-login__brand h2{font-size:var(--app-type-login-marketing)}}@media (max-width:390px){.portal-content{width:min(calc(100% - 1.25rem),370px)}.portal-login__form{padding-inline:.875rem}.portal-bottom-nav a{font-size:.75rem}}.ect-compare,.ect-showcase{color:var(--text-primary);background:var(--canvas);isolation:isolate}.ect-showcase__heading{max-width:780px;margin-bottom:28px}.ect-showcase__heading h2{font-size:clamp(1.65rem,3vw,2.4rem);line-height:1.2;letter-spacing:-.025em;margin:0 0 16px}.ect-showcase__heading p{color:var(--text-secondary);line-height:1.65;margin:0}.ect-showcase__toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:20px}.ect-showcase__toolbar p{font-weight:650;margin:0}.ect-showcase__toolbar p span{font-weight:400;color:var(--text-secondary);margin-left:8px}.ect-showcase-dialog__actions>div,.ect-showcase__toolbar>div{display:flex;gap:10px}.ect-showcase button,.ect-showcase-dialog button{font:inherit;color:var(--text-primary);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;outline-offset:4px}.ect-showcase button:disabled{opacity:.5;cursor:not-allowed}.ect-showcase button:active:not(:disabled),.ect-showcase-dialog button:active{transform:translateY(1px)}.ect-compare :focus-visible,.ect-showcase :focus-visible,.ect-showcase-dialog :focus-visible{outline:3px solid var(--focus);outline-offset:4px}.ect-showcase__track{display:grid;grid-auto-flow:column;grid-auto-columns:46%;gap:24px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding:2px;overscroll-behavior-x:contain;scrollbar-width:thin;padding:4px 4px 20px;margin:-4px;touch-action:pan-x pan-y;cursor:grab;min-width:0}.ect-showcase__track[data-dragging]{scroll-snap-type:none;cursor:grabbing;-webkit-user-select:none;user-select:none}.ect-showcase__entry{min-width:0;scroll-snap-align:start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.ect-showcase .ect-showcase__open{position:relative;display:block;width:100%;border:0;border-radius:0;aspect-ratio:8/5;overflow:hidden;padding:0;background:var(--surface-subtle);text-align:left}.ect-showcase__open img,.ect-showcase__open picture{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.ect-showcase__expand{position:absolute;bottom:12px;right:12px;display:flex;gap:7px;align-items:center;padding:8px 10px;border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm);font-size:.8rem;pointer-events:none}.ect-showcase__caption{padding:23px}.ect-showcase__classification{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.ect-showcase__caption h3{font-size:1.12rem;line-height:1.35;margin:8px 0 10px}.ect-showcase__caption p{font-size:.93rem;color:var(--text-secondary);line-height:1.6;margin:0}.ect-showcase__hint{font-size:.83rem;color:var(--text-secondary);margin:17px 0 0}.ect-showcase-dialog{border:1px solid var(--border);border-radius:var(--radius-lg);padding:0;width:min(1200px,calc(100vw - 40px));max-width:1200px;max-height:calc(100dvh - 40px);color:var(--text-primary);background:var(--surface);overscroll-behavior:contain;overflow:auto;box-shadow:var(--shadow-menu)}.ect-showcase-dialog::backdrop{background:var(--overlay);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.ect-showcase-dialog__surface{min-width:0}.ect-showcase-dialog__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;background:var(--surface);position:sticky;top:0;z-index:2;border-bottom:1px solid var(--border);font-size:.9rem}.ect-showcase-dialog__image{position:relative;background:var(--surface-subtle);aspect-ratio:8/5}.ect-showcase-dialog__image img,.ect-showcase-dialog__image picture{display:block;width:100%;height:100%;object-fit:contain}.ect-showcase-dialog__status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:30px;text-align:center;color:var(--text-secondary);background:var(--surface-subtle);z-index:1}.ect-showcase-dialog__details{padding:24px 30px 30px}.ect-showcase-dialog__details h2{font-size:1.45rem;line-height:1.3;margin:0 0 12px}.ect-showcase-dialog__details p{line-height:1.6;color:var(--text-secondary)}.ect-showcase-dialog__actions{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}.ect-showcase-dialog__actions button{padding:8px 14px}.ect-showcase-dialog__actions a{display:inline-flex;gap:8px;align-items:center;min-height:44px;font-weight:650;color:var(--accent)}.ect-compare{padding-top:24px}.ect-compare__evidence{color:var(--text-secondary);font-size:.87rem;line-height:1.55;margin:0 0 22px}.ect-compare__labels{display:flex;justify-content:space-between;font-weight:650;margin-bottom:12px}.ect-compare__frame{position:relative;aspect-ratio:8/5;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);max-width:1100px;margin-inline:auto}.ect-compare__after,.ect-compare__before{position:absolute;inset:0}.ect-compare__before{clip-path:inset(0 calc(100% - var(--reveal)) 0 0)}.ect-compare__frame img,.ect-compare__frame picture{display:block;width:100%;height:100%;object-fit:contain}.ect-compare__divider{position:absolute;top:0;bottom:0;left:var(--reveal);width:3px;transform:translateX(-50%);background:var(--accent);pointer-events:none}.ect-compare__handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:64px;border:2px solid var(--accent);border-radius:var(--radius-md);background:var(--surface);color:var(--accent);display:grid;place-items:center;pointer-events:auto;cursor:ew-resize;touch-action:none;box-shadow:var(--shadow-md)}.ect-compare__range-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;max-width:1100px;margin:22px auto 0}.ect-compare__range-wrap label{font-size:.9rem;font-weight:650}.ect-compare__range-wrap output{font-size:.83rem;color:var(--text-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ect-compare__range{grid-column:1/-1;width:100%;min-height:44px;accent-color:var(--accent);cursor:ew-resize;margin:0}.ect-compare__fallback{margin-top:22px;border-top:1px solid var(--border);padding-top:10px}.ect-compare__fallback summary{min-height:44px;padding:12px 0;cursor:pointer;font-weight:600}.ect-compare__fallback>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:12px}.ect-compare__fallback figure{margin:0;min-width:0}.ect-compare__fallback img{width:100%;height:auto;display:block}.ect-compare__fallback figcaption{font-size:.8rem;color:var(--text-secondary);line-height:1.5;margin-top:10px}@media(hover:hover){.ect-showcase button:hover:not(:disabled),.ect-showcase-dialog button:hover{background:var(--surface-accent);border-color:var(--accent)}.ect-showcase__entry:hover{border-color:var(--border-strong)}}@media(max-width:767px){.ect-showcase__track{grid-auto-columns:89%;gap:16px}.ect-showcase__heading{margin-bottom:22px}.ect-showcase__caption{padding:18px}.ect-showcase__caption h3{font-size:1.02rem}.ect-showcase__expand{bottom:8px;right:8px;padding:6px 8px}.ect-showcase__expand span{display:none}.ect-showcase-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:var(--radius-md)}.ect-showcase-dialog__bar{padding:9px 12px}.ect-showcase-dialog__details{padding:20px}.ect-showcase-dialog__details h2{font-size:1.25rem}.ect-compare__range-wrap{gap:5px}.ect-compare__fallback>div,.ect-compare__range-wrap{grid-template-columns:minmax(0,1fr)}.ect-compare__handle{height:56px;width:44px}.ect-showcase__toolbar p span{display:block;font-size:.8rem;margin:0}.ect-showcase-dialog__actions{align-items:flex-start;flex-direction:column}}.ect-compare__handle{left:clamp(24px,var(--reveal),calc(100% - 24px))}@media(prefers-reduced-motion:reduce){.ect-compare *,.ect-showcase *,.ect-showcase-dialog *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}