[hidden]{display:none!important}
/* Portal layouts share mobile mechanics; editor layouts own their own stylesheet. */
.portal-mobile-bar,.portal-nav-close,.portal-admin-menu,.portal-nav-backdrop{display:none}
@media(max-width:768px){
 body.cp-portal-app,body.cp-portal-admin{height:var(--portal-viewport,100dvh);min-height:0;overscroll-behavior:none}
 :is(.cp-portal-app,.cp-portal-admin,.cp-portal-landing) :is(input,select,textarea){font-size:16px!important;max-width:100%;min-width:0}
 :is(.cp-portal-app,.cp-portal-admin,.cp-portal-landing) :is(button,[role=button]){min-height:44px;min-width:44px;touch-action:manipulation}
 :is(.cp-portal-app,.cp-portal-admin) :is(button,a,input,select,textarea):focus-visible{outline:2px solid #059669;outline-offset:2px}
 :is(.cp-portal-app,.cp-portal-admin) :is(input,select){min-height:44px}
 :is(.cp-portal-app,.cp-portal-admin) :is(input[type=checkbox],input[type=radio],input[type=color]){min-width:24px;min-height:24px;width:auto}
 .cp-portal-app .app-layout,.cp-portal-app .main-area{height:100%;min-height:0}
 .cp-portal-app #app-screen{height:100%;min-height:0}
 .portal-mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;min-height:56px;padding:4px 12px;padding-top:max(4px,env(safe-area-inset-top));background:var(--surface,#fff);border-bottom:1px solid var(--border,#e2e8f0);z-index:25}
 .portal-mobile-bar strong{font-size:18px;letter-spacing:-.3px;color:var(--text,#111827)}
 .portal-mobile-bar button,.portal-nav-close,.portal-admin-menu{border:0;background:transparent;color:var(--text,#111827);border-radius:10px;font-size:22px;display:grid;place-items:center;flex-shrink:0}
 .cp-portal-app .main-area>#chat-view{height:auto!important;min-height:0;flex:1}
 .cp-portal-app .main-area>.topbar,.cp-portal-app #chat-view>.topbar{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:8px 16px;z-index:20;position:relative}
 .cp-portal-app .topbar>.btn-menu,.cp-portal-app .topbar>.btn-topbar-settings{display:none!important}
 .cp-portal-app .chat-title-input{width:100%;font-weight:650;line-height:1.3;min-height:40px;padding:4px 0}
 .cp-portal-app .model-selector-wrap{order:initial;width:100%;min-width:0}
 .cp-portal-app .model-selector-btn{font-size:14px;padding:8px 30px 8px 12px;min-height:44px;width:100%;justify-content:flex-start;border-radius:10px}
 .cp-portal-app .model-dropdown{left:0;right:0;min-width:0;width:100%;max-height:min(390px,calc(var(--portal-viewport,100dvh) - 190px));overflow-y:auto;overscroll-behavior:contain}
 .cp-portal-app .model-option{width:100%;text-align:start;min-height:64px}
 .cp-portal-app .model-option-name{font-size:15px}.cp-portal-app .model-option-tag{font-size:12px;white-space:normal}
 .cp-portal-app .messages-area{flex:1;min-height:0;padding:16px 14px;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 .cp-portal-app .messages-container{width:100%;min-width:0}
 .cp-portal-app .message{min-width:0;gap:8px}.cp-portal-app .message-bubble{max-width:100%;min-width:0;font-size:16px;line-height:1.65;overflow-wrap:anywhere}
 .cp-portal-app .message-assistant .message-bubble{max-width:100%}.cp-portal-app .message-user .message-bubble{max-width:90%}
 .cp-portal-app .message-bubble :is(pre,table){display:block;max-width:100%;overflow:auto}.cp-portal-app .message-bubble pre{direction:ltr;text-align:left}.cp-portal-app .message-bubble img{max-width:100%;height:auto}
 .cp-portal-app .message-avatar{flex-shrink:0}.cp-portal-app .code-block-wrapper{max-width:100%;min-width:0}
 .cp-portal-app .input-area{position:relative;flex-shrink:0;padding:10px 12px max(10px,env(safe-area-inset-bottom));background:var(--surface,#fff);z-index:15}
 .cp-portal-app .input-wrapper{width:100%;max-width:none}.cp-portal-app .input-container{gap:6px;padding:6px;border-radius:16px;align-items:flex-end}
 .cp-portal-app #message-input{font-size:16px!important;line-height:1.5;min-height:44px;max-height:min(150px,26dvh);padding:10px 4px;resize:none;min-width:0}
 .cp-portal-app .btn-attach,.cp-portal-app .btn-send{width:44px;height:44px;flex:0 0 44px;border-radius:12px}
 .cp-portal-app .presence-indicator{display:none!important}
 .cp-portal-app .sidebar{inset:0 auto 0 0;width:min(320px,calc(100vw - 48px));min-width:0;height:var(--portal-viewport,100dvh);z-index:1100;transform:translateX(-105%);padding-bottom:env(safe-area-inset-bottom);overflow:hidden}
 [dir=rtl] .cp-portal-app .sidebar{inset:0 0 0 auto;transform:translateX(105%)}
 .cp-portal-app .sidebar.open{transform:translateX(0)}
 .cp-portal-app .sidebar-backdrop{z-index:1090;background:#0f172a80}
 .cp-portal-app .sidebar-header{padding-top:max(12px,env(safe-area-inset-top));max-height:55%;overflow:auto;flex-shrink:0}
 .cp-portal-app .sidebar-logo{display:flex;align-items:center;justify-content:space-between;gap:8px}
 .cp-portal-app .sidebar-content{min-height:0;overflow:auto}.cp-portal-app .sidebar-footer{flex-shrink:0}
 .cp-portal-app .sidebar-nav-item{font-size:14px;min-height:44px}.cp-portal-app .sidebar-nav{gap:3px}
 .cp-portal-app .chat-item{min-height:48px}.cp-portal-app .chat-item-delete{width:44px;height:44px;flex-shrink:0}
 .cp-portal-app .dash-view,.cp-portal-app .marketplace-view{min-height:0;flex:1;overflow:auto}
 .cp-portal-app .dash-container{padding:20px 16px 32px;min-width:0}
 .cp-portal-app .dash-header{gap:12px;align-items:center;flex-wrap:wrap}.cp-portal-app .dash-title{font-size:23px}
 .cp-portal-app .dash-header-actions{margin-inline-start:auto;flex-wrap:wrap;gap:8px}
 .cp-portal-app .dash-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cp-portal-app .dash-stat{min-width:0;padding:16px}
 .cp-portal-app .dash-apps-grid,.cp-portal-app .mp-grid{grid-template-columns:minmax(0,1fr)}
 .cp-portal-app .dash-app-card{min-width:0}.cp-portal-app .mp-header{padding:20px 16px}.cp-portal-app .mp-grid{padding:0 16px 24px}
 .cp-portal-app .settings-panel{top:0;right:0;left:0;width:100%;max-width:none;height:var(--portal-viewport,100dvh);overflow:hidden;border-radius:0;transform:translateX(100%)}
 .cp-portal-app .settings-overlay.open .settings-panel{transform:translateX(0)}
 .cp-portal-app .settings-header{padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));flex-shrink:0;min-height:60px}
 .cp-portal-app .settings-nav{padding:0 8px;gap:2px;min-height:50px}.cp-portal-app .settings-nav-tab{min-height:48px;padding:10px 14px;font-size:14px}
 .cp-portal-app .settings-body{padding:20px 16px max(24px,env(safe-area-inset-bottom));min-height:0;overflow:auto;overscroll-behavior:contain}
 .cp-portal-app .setting-row{gap:12px;flex-wrap:wrap;padding:12px}.cp-portal-app .setting-row label{font-size:15px;flex:1;min-width:120px}
 .cp-portal-app .setting-row>input,.cp-portal-app .setting-row>select{width:100%!important;max-width:none!important}
 .cp-portal-app .settings-section{overflow:visible}.cp-portal-app .settings-section :is(pre,code){overflow-wrap:anywhere;white-space:pre-wrap}
 .cp-portal-app .embed-preview-frame,.cp-portal-app #embed-live-preview{max-width:100%;min-width:0}.cp-portal-app .embed-customizer{grid-template-columns:minmax(0,1fr)}
 :is(.cp-portal-app,.cp-portal-admin) :is(.modal-overlay,.templates-modal,.create-app-modal){padding:12px 0 0;align-items:flex-end;max-height:var(--portal-viewport,100dvh)}
 :is(.cp-portal-app,.cp-portal-admin) :is(.modal,.templates-box,.create-app-box,.link-editor){width:100%!important;max-width:100%!important;max-height:calc(var(--portal-viewport,100dvh) - 12px);border-radius:20px 20px 0 0;overflow:auto;overscroll-behavior:contain;padding:20px 16px max(20px,env(safe-area-inset-bottom))}
 .cp-portal-app .tpl-grid{grid-template-columns:minmax(0,1fr)}.cp-portal-app .le-url-row,.cp-portal-app .le-actions{flex-wrap:wrap}
 .cp-portal-admin .admin-layout{height:100%;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:'topbar' 'main'}
 .cp-portal-admin .topbar{min-height:60px;padding:6px 12px;padding-top:max(6px,env(safe-area-inset-top));gap:8px;z-index:30}
 .cp-portal-admin .topbar-title{font-size:16px;min-width:0;flex:1}.cp-portal-admin .topbar-back{font-size:0;min-width:44px;min-height:44px;display:grid;place-items:center}.cp-portal-admin .topbar-back svg{width:20px;height:20px}
 .cp-portal-admin .sidebar{position:fixed;inset:0 auto 0 0;z-index:1100;width:min(300px,calc(100vw - 48px));height:var(--portal-viewport,100dvh);transform:translateX(-105%);padding-top:max(14px,env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom);transition:transform .2s;overflow:auto;background:var(--surface)}
 [dir=rtl] .cp-portal-admin .sidebar{inset:0 0 0 auto;transform:translateX(105%)}.cp-portal-admin .sidebar.open{transform:translateX(0)}
 .cp-portal-admin .portal-nav-close{margin-inline-start:auto;margin-inline-end:10px}
 .cp-portal-admin .nav-item{min-height:48px;font-size:15px}
 .portal-nav-backdrop.open{display:block;position:fixed;inset:0;z-index:1090;background:#0f172a80;border:0}
 .cp-portal-admin .main{padding:20px 16px 32px;min-width:0;overflow:auto;overscroll-behavior:contain}
 .cp-portal-admin .section-header{gap:12px;flex-wrap:wrap}.cp-portal-admin .section-header>div{min-width:0;flex:1 1 100%}
 .cp-portal-admin .section-title{font-size:24px}.cp-portal-admin .section-desc{font-size:14px;line-height:1.5;white-space:normal;overflow:visible;color:var(--text-secondary)}.cp-portal-admin .user-email{font-size:14px;color:var(--text-secondary);direction:ltr;unicode-bidi:embed;text-align:start}
 .cp-portal-admin .toolbar{flex-wrap:wrap;gap:10px}.cp-portal-admin .toolbar>*{width:100%;max-width:none!important;min-width:0}
 .cp-portal-admin #adminWorkspace{width:100%!important;max-width:100%;min-height:44px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text);padding:8px}
 .cp-portal-admin #userList .card-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;padding:16px}
 .cp-portal-admin #userList .user-info{min-width:0}.cp-portal-admin .user-name,.cp-portal-admin .user-email{overflow-wrap:anywhere;word-break:normal}
 .cp-portal-admin #userList .badge-muted{color:var(--text-secondary);border:1px solid var(--border-strong)}
 .cp-portal-admin #userList .badge{grid-column:2;justify-self:start}.cp-portal-admin #userList .card-row>span:not(.badge){grid-column:2}
 .cp-portal-admin .user-actions{grid-column:1/-1;display:flex;gap:10px;margin-top:2px;justify-content:flex-end;border-top:1px solid var(--border);padding-top:10px}
 .cp-portal-admin .user-actions button{flex:1;justify-content:center;font-size:14px}
 .cp-portal-admin .table-wrap{max-width:100%;overflow:auto}.cp-portal-admin table{min-width:540px}.cp-portal-admin #permissionTable{overflow:auto}
 .cp-portal-admin .role-header{flex-wrap:wrap;gap:10px}.cp-portal-admin .role-card{padding:16px}.cp-portal-admin .role-perms{gap:8px;flex-wrap:wrap}
 .cp-portal-admin .modal{padding:0;display:flex;flex-direction:column}.cp-portal-admin .modal-header{padding:12px 16px;flex-shrink:0}.cp-portal-admin .modal-body{padding:20px 16px;overflow:auto;min-height:0}.cp-portal-admin .modal-footer{padding:12px 16px max(12px,env(safe-area-inset-bottom));flex-wrap:wrap;flex-shrink:0}.cp-portal-admin .modal-footer button{flex:1;justify-content:center}
 .cp-portal-admin .modal-body :is(input,select,textarea){width:100%}.cp-portal-admin .modal-body input[type=checkbox]{width:24px}
 .cp-portal-landing{font-size:16px;max-width:100%;overflow-wrap:break-word}
 .cp-portal-landing .container{width:100%;max-width:100%;padding-inline:20px}
 .cp-portal-landing nav{max-width:100%}.cp-portal-landing .nav-inner{min-width:0;gap:8px}.cp-portal-landing .logo svg{max-width:140px}.cp-portal-landing #cp-lang-toggle{min-width:44px;min-height:44px;padding:8px!important}
 .cp-portal-landing .hamburger{justify-content:center;align-items:center;width:44px;height:44px}
 .cp-portal-landing nav.open .nav-links{top:64px;max-height:calc(var(--portal-viewport,100dvh) - 64px);overflow:auto;padding-bottom:max(20px,env(safe-area-inset-bottom))}
 .cp-portal-landing .nav-links a{min-height:44px;display:flex;align-items:center}
 .cp-portal-landing .a3hero{height:calc(100svh - 64px);min-height:600px;max-height:900px}.cp-portal-landing .a3hero-bar{padding:32px 0}.cp-portal-landing .a3hero-bar-inner{gap:20px}.cp-portal-landing .a3hero-bar h1{font-size:40px;line-height:1.1;letter-spacing:-1px}.cp-portal-landing .a3hero-sub{font-size:16px;line-height:1.65}.cp-portal-landing .a3hero-actions{width:100%;gap:12px;margin:0}
 .cp-portal-landing .section,.cp-portal-landing .vision{padding-block:64px}.cp-portal-landing .reveal{opacity:1;transform:none}.cp-portal-landing .section-title{font-size:30px;line-height:1.2}
 .cp-portal-landing :is(.pillars,.sdk-grid,.ll-grid,.how-it-works,.pricing-grid){grid-template-columns:minmax(0,1fr)}
 .cp-portal-landing :is(.demo-browser,.demo-chat,.ll-demo,.code-window,.sdk-code,.pricing-card){min-width:0;max-width:100%}
 .cp-portal-landing pre{max-width:100%;overflow:auto}.cp-portal-landing .footer-grid{grid-template-columns:minmax(0,1fr);gap:28px}
}
@media(prefers-reduced-motion:reduce){.cp-portal-landing .reveal{opacity:1;transform:none;transition:none}}
