/* EYWAL — CSS màn hình (gộp 2026-11-09). Token + nền tảng ở eywal-tokens.css (nạp trước). */
/* ==== eywal.css ==== */
:root{--sidebar-w:220px;--sidebar-w-collapsed:55px;--topbar-h:55px;--radius:10px;--radius-sm:6px;--shadow:0 6px 20px rgb(60 60 60 / 40%);color-scheme:dark}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
:root[data-bs-theme="light"]{color-scheme:light;--bg-dark:#f8f9fa;--bg-darker:#ffffff;--bg-card:#ffffff;--bs-body-bg:#ffffff;--border-color:rgba(0,0,0,0.08);--text-normal:#212529;--text-muted:#6c757d;--primary:#111111;--bs-border-color:rgba(0,0,0,0.06);--bs-secondary-border-subtle:rgba(0,0,0,0.06);--bs-secondary-color:var(--text-muted)}
:root[data-bs-theme="dark"]{color-scheme:dark;--bg-dark:#000000;--bg-darker:#141414;--bg-card:#141414;--bs-body-bg:#141414;--border-color:rgba(255,255,255,0.07);--text-normal:#e0e0e0;--text-muted:#9ca3af;--primary:#ffffff;--bs-border-color:rgba(255,255,255,0.06);--bs-secondary-border-subtle:rgba(255,255,255,0.06);--bs-secondary-color:var(--text-muted)}
body{font-size:13.5px;background:var(--bg-dark);color:var(--text-normal)}
a{text-decoration:none}
.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-w);height:100vh;background:var(--bg-darker);border-right:1px solid var(--border-color);display:flex;flex-direction:column;z-index:1051;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.sidebar .menu{flex:1;overflow-y:auto;padding:10px 0}
.sidebar .menu::-webkit-scrollbar{width:3px}
.sidebar .menu::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}
.sidebar a{color:var(--text-muted);display:flex;align-items:center;gap:0;padding:9px 12px;margin:3px 8px;border-radius:var(--radius-sm);white-space:nowrap;position:relative;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.sidebar a:hover{background:rgba(128,128,128,.10);color:var(--text-normal)}
.sidebar a.active{background:var(--t-elev);color:var(--primary);font-weight:600}
.sidebar a.active::before{content:"";position:absolute;left:-8px;top:50%;transform:translateY(-50%);width:3px;height:62%;border-radius:0 4px 4px 0;background:var(--primary)}
.sidebar .menu span{margin-left:12px}
.sidebar-collapsed .logo-text{display:none}
.sidebar-collapsed .sidebar{width:var(--sidebar-w-collapsed)}
.sidebar-collapsed .content{margin-left:var(--sidebar-w-collapsed)}
.sidebar-collapsed .sidebar a span{opacity:0;width:0;overflow:hidden}
.nav-group-heading{margin:20px 0}
.sidebar-collapsed .nav-group-heading span{display:none}
.sidebar-footer{padding:16px;margin-bottom:10px}
#userDropdown img{border:2px solid var(--border-color);transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
#userDropdown img:hover{cursor:pointer;border-color:var(--primary)}
.sidebar-collapsed .sidebar-footer{flex-direction:column;justify-content:center;gap:10px}
.content{margin-left:var(--sidebar-w);padding:20px;background:var(--bg-dark);min-height:100vh;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
#mobileUserHolder{position:fixed;top:10px;right:10px;z-index:2002;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
@media (max-width: 991.98px){
  .sidebar{transform:translateX(-100%);width:var(--sidebar-w)}
  .sidebar.show{transform:translateX(0)}
  .content{margin-left:0!important;margin-top:var(--topbar-h)}
  .sidebar-collapsed .sidebar{width:var(--sidebar-w)}
  .sidebar-collapsed .sidebar a span{opacity:inherit;width:initial;overflow:initial}
  #mobileMenuBtn{position:fixed;top:0;left:0;z-index:2}
  body::before{content:"";position:fixed;top:0;left:0;right:0;height:var(--topbar-h);background:var(--t-card);z-index:1}
}
#sidebarOverlay{display:none;position:fixed;inset:0;background:var(--t-card);z-index:1050}
.sidebar.show + #sidebarOverlay{display:block}
.switch{position:relative;display:inline-block;width:50px;height:28px}
.switch input{opacity:0;width:0;height:0}
.list-group-item-action{transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.list-group-item-action .fa-chevron-right{transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.btn{transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.ui-toast-stack{z-index:1080}
.ui-inline-edit-input{min-width:0;max-width:320px}
.ey-avatar-fallback{background:var(--bg-darker)}
.ey-avatar-fallback{object-fit:cover}
.project-item .badge{font-weight:500}
.project-item{border-radius:12px;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.project-item .project-name{letter-spacing:-.01em}
.ui-inline-row{display:flex;align-items:center;gap:.55rem}
.ui-inline-row-lg{display:flex;align-items:center;gap:1rem}
.ui-inline-btn-row{display:inline-flex;align-items:center;gap:.55rem}
.ui-inline-row-wrap{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.ui-inline-row-start{display:flex;align-items:flex-start;gap:.55rem}
.ui-page-container{display:flex;flex-direction:column;gap:1rem}
.ui-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ui-toolbar-label{display:flex;flex-direction:column;gap:6px}
.ui-panel{position:relative;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-card)}
.ui-section-title{font-weight:600;font-size:1rem;letter-spacing:-.01em}
.soft{border-radius:12px;border:1px solid var(--border-color);background:var(--bg-card)}
.shell{display:flex;flex-direction:column;gap:1rem}
.note{line-height:1.5}
.app-card{border-radius:12px;overflow:hidden}
.ru-list{display:flex;flex-direction:column;gap:1rem}
.project-detail .card-body{color:var(--text-normal)}
.page-home .card,.page-project-detail .card{background:var(--bg-card);border-color:var(--border-color)}
.ey-warning-box{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.25);border-radius:12px;color:#fcd34d;font-size:.85rem}
.ey-warning-ico{flex:0 0 auto;margin-top:1px}
.btn-unlink{border:1px solid var(--bs-danger);color:var(--bs-danger);background:transparent}
.btn-unlink:hover{background:var(--bs-danger);color:#fff}
.btn-unlink:disabled,.btn-unlink.btn-unlink-disabled{border-color:var(--border-color)!important;color:var(--text-muted)!important;background:transparent!important;opacity:.5;cursor:not-allowed}
.page-home .ui-toolbar-label .ui-section-title{margin:0}
.page-home .table{margin-bottom:0}
.page-home .table tr > *{vertical-align:middle}
.page-home .identity-header{align-items:flex-start}
.page-home .home-identity-card{overflow:hidden}
.page-home .home-provider-toolbar .ui-section-title{margin:0}
.page-home .home-provider-toolbar .btn{white-space:nowrap}
.page-home .home-provider-table{white-space:nowrap}
.page-home .home-warning{border-radius:12px}
.page-project-list .content > .container-xl{display:flex;flex-direction:column;gap:1rem}
.page-project-list .ui-list-empty{border:1px dashed var(--border-color);border-radius:12px;padding:2.2rem 1rem;text-align:center;background:rgba(255,255,255,.01)}
.page-project-list .ui-list-empty i{font-size:1.8rem;opacity:.5}
.page-project-list .ui-list-empty .text{color:var(--text-muted)}
.page-project-detail .project-uri-item{border-left:0;border-right:0;padding-top:.85rem;padding-bottom:.85rem}
@media (max-width: 767.98px){
  .ui-toolbar{align-items:flex-start}
  .ui-toolbar .btn{width:100%;justify-content:center}
  .ui-toolbar-label{width:100%}
  .page-project-list .content > .container-xl .ui-toolbar{gap:.75rem}
  .page-project-detail .list-group-item .d-flex.justify-content-between{flex-wrap:wrap}
  .project-item{padding-left:.95rem;padding-right:.95rem}
}
body.page-consent #mobileMenuBtn,body.page-consent #sidebar,body.page-consent #sidebarOverlay,body.page-consent #mobileUserHolder{display:none!important}
body.page-consent .content{margin-left:0!important;margin-top:0!important}
body.page-consent::before{display:none!important}
@property --rot{syntax:'<angle>';inherits:false;initial-value:0deg}
:root{--sidebar-w:240px;--sidebar-w-collapsed:68px;--topbar-h:58px;--radius:18px;--radius-sm:12px;--ey-radius-xl:24px;--ey-accent:#202020;--ey-accent-strong:#0f0f0f;--ey-accent-soft:rgba(255,255,255,.06);--ey-warm:#f5f5f5;--ey-danger-soft:rgba(239,68,68,.13);--ey-shadow:0 22px 70px rgba(0,0,0,.22);--ey-shadow-soft:0 14px 42px rgba(0,0,0,.16);--ey-ring:0 0 0 .22rem rgba(0,0,0,.22);--ey-muted:var(--text-muted)}
:root[data-bs-theme="light"]{--bg-dark:#eef2ef;--bg-darker:rgba(255,255,255,.76);--bg-card:rgba(255,255,255,.84);--bs-body-bg:#eef2ef;--border-color:rgba(23,38,31,.11);--text-normal:#16231d;--text-muted:#66746d;--primary:#13251e;--ey-page-bg:#eef2ef;--ey-surface:rgba(255,255,255,.82);--ey-surface-strong:#ffffff;--ey-surface-muted:rgba(22,35,29,.045);--ey-border:rgba(19,37,30,.12);--ey-glow:rgba(0,0,0,.20)}
:root[data-bs-theme="dark"]{--bg-dark:#09110e;--bg-darker:rgba(10,18,15,.78);--bg-card:rgba(15,25,21,.82);--bs-body-bg:#09110e;--border-color:rgba(218,255,240,.11);--text-normal:#edf8f3;--text-muted:#9eaea7;--primary:#f8fffc;--ey-page-bg:#09110e;--ey-surface:rgba(13,24,20,.82);--ey-surface-strong:#12231d;--ey-surface-muted:rgba(255,255,255,.045);--ey-border:rgba(218,255,240,.12);--ey-glow:rgba(255,255,255,.18)}
html{background:var(--ey-page-bg)}
body{min-height:100vh;overflow-x:hidden;font-size:14px;line-height:1.55;letter-spacing:-.005em;background:
        ,
;color:var(--text-normal);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
::selection{background:var(--t-elev);color:var(--primary)}
#spa-content{min-height:100vh;min-height:100dvh}
.content{background:transparent;padding:clamp(18px,2.2vw,32px)}
.content > .container-xl{max-width:1180px;padding-top:clamp(12px,1.4vw,24px)!important;padding-bottom:clamp(22px,2.4vw,40px)!important}
@media (min-width: 1400px){
  .content > .container-xl{max-width:1240px}
}
.text-secondary{color:var(--text-muted)!important}
code{color:var(--ey-accent);background:var(--ey-accent-soft);border:1px solid var(--t-bd2);border-radius:999px;padding:.12rem .42rem;font-size:.78em}
.min-w-0{min-width:0}
.object-fit-cover{object-fit:cover}
.sidebar{padding:10px 8px;background:transparent;border-right:1px solid var(--ey-border)}
:root[data-bs-theme="light"] .sidebar{background:transparent}
.sidebar .menu{padding:4px 0 12px}
.nav-group-heading{margin:18px 0 8px;padding-inline:4px!important}
.sidebar-footer{margin:8px 0 0;padding:12px;border:1px solid var(--ey-border);border-radius:12px;background:var(--ey-surface-muted)}
#userDropdown{min-height:34px;color:var(--text-normal)}
#toggleBtn{border-radius:12px;width:34px;height:34px;padding:0}
.sidebar-collapsed .sidebar{padding-inline:8px}
.sidebar-collapsed .content{margin-left:var(--sidebar-w-collapsed)}
.sidebar-collapsed #sidebarAvatar{width:34px;height:34px;margin-inline:auto}
.sidebar-collapsed .sidebar-text{display:none!important}
.sidebar-collapsed .sidebar-footer{padding:10px;align-items:center}
#sidebarOverlay{background:var(--t-card)}
.ui-panel,.soft,.card.ui-panel,.page-home .card,.page-project-detail .card{border:1px solid var(--ey-border)!important;border-radius:var(--ey-radius-xl);background:transparent}
:root[data-bs-theme="light"] .ui-panel,:root[data-bs-theme="light"] .soft,:root[data-bs-theme="light"] .card.ui-panel,:root[data-bs-theme="light"] .page-home .card,:root[data-bs-theme="light"] .page-project-detail .card{background:transparent}
.list-group-item{border-color:var(--ey-border)!important;background:transparent;color:var(--text-normal)}
.list-group-item-action{color:var(--text-normal)}
.list-group-item-action:hover{background:var(--ey-surface-muted);color:var(--primary)}
.ui-toolbar{gap:1rem;margin-bottom:.35rem!important}
.ui-section-title{font-size:clamp(1.05rem,1.3vw,1.38rem);letter-spacing:-.035em;font-weight:750;color:var(--primary)}
.ui-toolbar-label{gap:.25rem}
.btn{border-radius:12px;font-weight:650;letter-spacing:-.01em}
.btn-primary{--bs-btn-bg:var(--ey-accent);--bs-btn-border-color:var(--ey-accent);--bs-btn-color:#04120e;--bs-btn-hover-bg:var(--ey-accent-strong);--bs-btn-hover-border-color:var(--ey-accent-strong);--bs-btn-hover-color:#03100c;--bs-btn-active-bg:var(--ey-accent-strong);--bs-btn-active-border-color:var(--ey-accent-strong)}
.btn-outline-primary{--bs-btn-color:var(--ey-accent);--bs-btn-border-color:rgba(0,0,0,.42);--bs-btn-hover-bg:var(--ey-accent);--bs-btn-hover-border-color:var(--ey-accent);--bs-btn-hover-color:#04120e}
.btn-outline-secondary,.btn-outline-light{border-color:var(--ey-border);color:var(--text-normal)}
.btn-outline-secondary:hover,.btn-outline-light:hover{background:var(--ey-surface-muted);border-color:var(--t-bd2);color:var(--primary)}
.btn-link{color:var(--ey-accent)}
.btn:focus-visible,.form-control:focus,.form-select:focus{border-color:var(--t-bd2)!important}
.form-control,.form-select{border-radius:12px;border-color:var(--ey-border)!important;background-color:var(--ey-surface-muted)!important;color:var(--text-normal)!important}
.form-control::placeholder{color:color-mix(in srgb, var(--text-muted) 78%, transparent)}
.switch{width:46px;height:26px}
.table{--bs-table-bg:transparent;--bs-table-color:var(--text-normal);--bs-table-border-color:var(--ey-border)}
.table thead th{color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:750;border-bottom-color:var(--ey-border)}
.table > :not(caption) > * > *{padding:.78rem .75rem}
.badge{border-radius:999px;font-weight:650;letter-spacing:-.01em}
.text-bg-dark{background-color:var(--ey-surface-muted)!important;color:var(--text-normal)!important}
.alert{border-radius:12px;border-color:var(--ey-border)}
.alert-warning{background:rgba(0,0,0,.08);color:var(--t-tx2);border-color:var(--t-bd2)}
.alert-danger{background:var(--ey-danger-soft);border-color:var(--t-danger)}
.page-home .home-identity-card,.content[data-page="home"] .home-identity-card{overflow:hidden}
.page-home .home-identity-card .card-body,.content[data-page="home"] .home-identity-card .card-body{background:transparent}
.page-home #avatarImg,.content[data-page="home"] #avatarImg{width:76px;height:76px}
.page-home #nameText,.content[data-page="home"] #nameText{font-size:1.18rem;font-weight:760;letter-spacing:-.03em}
.page-home .home-provider-toolbar,.content[data-page="home"] .home-provider-toolbar{align-items:flex-start}
.page-home .home-provider-card .table-responsive,.content[data-page="home"] .home-provider-card .table-responsive{border:1px solid var(--ey-border);border-radius:12px;overflow:auto}
.page-home .home-provider-table tbody tr:hover,.content[data-page="home"] .home-provider-table tbody tr:hover{background:var(--ey-surface-muted)}
.project-item{margin:10px;border:1px solid var(--ey-border)!important;border-radius:12px!important;background:transparent}
.project-item:hover{border-color:var(--t-bd2)!important}
.project-name{font-size:1rem;font-weight:760;color:var(--primary)!important}
.ui-list-empty{margin:12px;border-color:var(--t-bd2)!important;background:var(--ey-surface-muted)!important}
#logoImg{width:76px;height:76px;border-radius:12px!important}
#projectNameText{font-size:1.22rem;font-weight:760;letter-spacing:-.035em;color:var(--primary)}
.app-card{border-radius:12px;border-color:var(--ey-border)!important;background:transparent}
.ru-list{gap:.85rem}
.note{color:var(--text-muted)!important}
.toast{border-radius:12px;border:1px solid var(--ey-border)}
@media (max-width: 991.98px){
  .sidebar{width:min(86vw,320px);padding:12px}
  .content{margin-left:0!important;margin-top:var(--topbar-h);padding:16px}
  .content > .container-xl{padding-top:12px!important;padding-inline:0}
  body::before{height:var(--topbar-h);background:var(--t-card);border-bottom:1px solid var(--ey-border);z-index:1040}
  .sidebar-collapsed .sidebar{width:min(86vw,320px)}
  .sidebar-collapsed .sidebar-text{display:inline!important;opacity:1;width:auto;max-width:none}
}
@media (max-width: 767.98px){
  body{font-size:13.5px}
  .content{padding:12px}
  .ui-panel,.soft,.card.ui-panel,.page-home .card,.page-project-detail .card{border-radius:12px}
  .ui-toolbar{align-items:stretch!important}
  .identity-header{gap:.85rem!important}
  .page-home #avatarImg,.content[data-page="home"] #avatarImg,#logoImg{width:64px;height:64px}
  .project-item{margin:8px;border-radius:12px!important}
  .table-responsive{border-radius:12px}
}
:root{--content-max:1420px;--content-pad-x:clamp(14px,2.1vw,30px);--content-pad-y:clamp(16px,2.2vw,30px);--radius-lg:18px;--radius-md:14px;--radius-xs:8px;--ease-out:cubic-bezier(.2,.8,.2,1)}
:root[data-bs-theme="light"]{--surface:rgba(255,255,255,.82);--surface-solid:#ffffff;--surface-soft:#f2f5f8;--surface-hover:#eef3f6;--table-head-bg:#f4f7fa;--table-hover-bg:#f7fafc;--accent:#0f766e;--accent-rgb:15,118,110;--on-primary:#ffffff;--mobile-chrome:rgba(255,255,255,.84);--soft-shadow:0 14px 38px rgba(15,23,42,.08);--soft-shadow-sm:0 8px 24px rgba(15,23,42,.07)}
:root[data-bs-theme="dark"]{--surface:rgba(20,20,20,.82);--surface-solid:#17191d;--surface-soft:#1f2329;--surface-hover:#242932;--table-head-bg:#1b1f25;--table-hover-bg:#20252d;--accent:#5eead4;--accent-rgb:94,234,212;--on-primary:#050505;--mobile-chrome:rgba(10,11,13,.86);--soft-shadow:0 18px 42px rgba(0,0,0,.30);--soft-shadow-sm:0 10px 28px rgba(0,0,0,.24)}
html{scroll-padding-top:calc(var(--topbar-h) + 16px)}
body{min-height:100vh;background:var(--app-bg);color:var(--text-normal);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.content{padding:var(--content-pad-y) var(--content-pad-x);background:var(--app-bg)}
.content > .container,.content > main{width:100%;max-width:var(--content-max);margin-inline:auto}
h1,.h1,h2,.h2,h3,.h3{letter-spacing:-.025em}
p,.text-muted,.small,small{line-height:1.55}
a{color:inherit}
a:hover{color:var(--accent)}
.sidebar{background:linear-gradient(180deg,rgba(var(--accent-rgb),.055),transparent 180px),
        var(--bg-darker)}
.sidebar .menu{padding:8px 8px 14px}
.sidebar a{min-height:38px;gap:10px;padding:9px 11px;margin:3px 6px;border:1px solid transparent;border-radius:12px;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.sidebar a i,.sidebar a svg{width:1.15rem;min-width:1.15rem;text-align:center}
.sidebar .menu span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.sidebar a:hover{background:var(--surface-hover);border-color:var(--border-color)}
.sidebar a.active{background:linear-gradient(90deg,rgba(var(--accent-rgb),.16),rgba(var(--accent-rgb),.07));border-color:rgba(var(--accent-rgb),.18)}
.sidebar a.active::before{width:4px;height:54%;background:var(--accent)}
.nav-group-heading{margin:18px 14px 8px;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase}
.sidebar-footer{margin:8px 8px 12px;padding:12px 8px 0;border-top:1px solid var(--border-color)}
.sidebar-collapsed .sidebar a{justify-content:center;gap:0;padding-inline:0;margin-inline:7px}
.sidebar-collapsed .sidebar .menu span{margin-left:0}
.sidebar-collapsed .sidebar-footer{padding-inline:0;margin-inline:7px}
.card,.list-group,.table-responsive{background:var(--surface);border:1px solid var(--border-color);border-radius:var(--radius-lg)}
.card{--bs-card-bg:var(--surface);--bs-card-border-color:var(--border-color);overflow:hidden}
.card-body{padding:clamp(1rem,1.7vw,1.35rem)}
.list-group{overflow:hidden}
.list-group-item{background:transparent;color:var(--text-normal);border-color:var(--border-color);padding:.9rem 1rem}
.list-group-item-action:hover,.list-group-item-action:focus{background:var(--surface-hover);color:var(--text-normal)}
.btn{--bs-btn-border-radius:.75rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:38px;font-weight:650;letter-spacing:-.01em;border-radius:var(--bs-btn-border-radius)}
.btn-sm{--bs-btn-border-radius:.62rem;min-height:32px;font-size:.82rem}
.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-color:var(--on-primary);--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--accent);--bs-btn-hover-color:#fff}
.btn-outline-primary{--bs-btn-color:var(--primary);--bs-btn-border-color:rgba(var(--accent-rgb),.36);--bs-btn-hover-bg:var(--accent);--bs-btn-hover-border-color:var(--accent);--bs-btn-hover-color:#fff}
.btn-outline-secondary,.btn-light{--bs-btn-bg:var(--surface-soft);--bs-btn-border-color:var(--border-color);--bs-btn-color:var(--text-normal);--bs-btn-hover-bg:var(--surface-hover);--bs-btn-hover-border-color:rgba(var(--accent-rgb),.28);--bs-btn-hover-color:var(--text-normal)}
.btn-link{min-height:auto;font-weight:600;color:var(--accent);text-decoration:none}
.btn-link:hover{text-decoration:underline;text-underline-offset:3px}
.form-control,.form-select{background:var(--surface-solid);color:var(--text-normal);border-color:var(--border-color);border-radius:.78rem}
.form-control:not(textarea),.form-select{min-height:40px}
.form-control-sm,.form-select-sm{min-height:32px;border-radius:.62rem}
.form-control:focus,.form-select:focus{background:var(--surface-solid);color:var(--text-normal);border-color:rgba(var(--accent-rgb),.52)}
.form-label{font-weight:650;color:var(--text-normal)}
.form-text{color:var(--text-muted)}
.badge{border-radius:999px;padding:.42em .64em;font-weight:650;letter-spacing:-.005em}
.alert{border-radius:var(--radius-md);border-color:var(--border-color)}
.modal-content{border-radius:var(--radius-lg);border-color:var(--border-color);background:var(--surface-solid)}
.modal-header,.modal-footer{border-color:var(--border-color)}
.table-responsive{overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.45) transparent}
.table{--bs-table-bg:transparent;--bs-table-color:var(--text-normal);--bs-table-border-color:var(--border-color);margin-bottom:0;vertical-align:middle}
.table > :not(caption) > * > *{padding:.85rem .95rem;border-bottom-color:var(--border-color)}
.table thead th{background:var(--table-head-bg);color:var(--text-muted);font-size:.72rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.table-responsive > .table{min-width:680px}
.ui-page-container{gap:1.15rem}
.project-item{background:var(--surface);border:1px solid var(--border-color)!important}
.project-item:hover{border-color:rgba(var(--accent-rgb),.28)!important}
.ey-avatar-fallback{border:1px solid var(--border-color)}
.ui-inline-row,.ui-inline-row-lg,.ui-inline-btn-row,.ui-inline-row-wrap,.ui-inline-row-start{min-width:0}
.ui-inline-row > *,.ui-inline-row-lg > *,.ui-inline-row-wrap > *{min-width:0}
@media (max-width: 991.98px){
  .sidebar{width:min(304px,calc(100vw - 52px))}
  .sidebar.show{transform:translateX(0)}
  .content{padding:calc(var(--topbar-h) + 14px) 14px 24px;margin-top:0}
  body::before{background:var(--mobile-chrome);border-bottom:1px solid var(--border-color)}
  #mobileMenuBtn{width:44px;height:44px;margin:5px;border-radius:12px;background:var(--surface-solid);border:1px solid var(--border-color);color:var(--text-normal);z-index:2003}
  #mobileUserHolder{top:8px;right:10px;z-index:2003}
  #sidebarOverlay{background:var(--t-card)}
}
@media (max-width: 767.98px){
  .content{padding-inline:12px;padding-bottom:22px}
  .card-body{padding:1rem}
  .table > :not(caption) > * > *{padding:.72rem .75rem}
  .table-responsive > .table{min-width:620px}
}
@media (max-width: 575.98px){
  h1,.h1{font-size:1.55rem}
  h2,.h2{font-size:1.32rem}
  .ui-inline-btn-row .btn{width:100%}
  .btn{width:auto;min-height:38px}
  .modal-dialog{margin:.75rem}
  .sidebar .menu{padding-bottom:24px}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{scroll-behavior:auto!important}
}
:root{--sidebar-w:260px;--sidebar-w-collapsed:72px;--topbar-h:58px;--radius:16px;--radius-sm:10px;--ey-chat-accent:#2f2f2f;--ey-chat-accent-hover:#141414;--ey-chat-focus:0 0 0 3px rgba(0,0,0,.20)}
:root[data-bs-theme="light"]{--bg-dark:#ffffff;--bg-darker:#f7f7f8;--bg-card:#ffffff;--bs-body-bg:#ffffff;--border-color:#e5e5e5;--text-normal:#2f2f2f;--text-muted:#6f6f6f;--primary:#171717;--ey-page-bg:#ffffff;--ey-surface:#ffffff;--ey-surface-strong:#ffffff;--ey-surface-muted:#f7f7f8;--ey-border:#e5e5e5;--ey-shadow:none;--ey-shadow-soft:none}
:root[data-bs-theme="dark"]{--bg-dark:#212121;--bg-darker:#171717;--bg-card:#2f2f2f;--bs-body-bg:#212121;--border-color:#3d3d3d;--text-normal:#ececec;--text-muted:#b4b4b4;--primary:#ffffff;--ey-page-bg:#212121;--ey-surface:#2f2f2f;--ey-surface-strong:#303030;--ey-surface-muted:#262626;--ey-border:#3d3d3d;--ey-shadow:none;--ey-shadow-soft:none}
body{background:var(--ey-page-bg)!important;color:var(--text-normal)!important;font-size:14px;line-height:1.55;letter-spacing:0}
#spa-content{min-height:100vh;min-height:100dvh}
.content{background:var(--ey-page-bg)!important;padding:24px 28px}
.content > .container-xl{max-width:1080px;padding-top:20px!important;padding-bottom:48px!important}
.page-home .content > .container-xl,.content[data-page="home"] > .container-xl{max-width:960px}
.sidebar{padding:8px;background:var(--bg-darker)!important;border-right:1px solid var(--ey-border)!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#sidebarAvatar{width:32px;height:32px;border-color:var(--ey-border)!important;box-shadow:none!important}
#sidebarName{font-size:.9rem}
.sidebar .menu{padding:4px 0}
.sidebar a{min-height:40px;margin:1px 0;padding:9px 10px;gap:10px;border:0!important;border-radius:12px;background:transparent;color:var(--text-normal);font-weight:500;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.sidebar a i{width:20px;color:var(--text-muted);opacity:1}
.sidebar a span{margin-left:0}
.sidebar a:hover{background:var(--ey-surface-muted)!important;color:var(--primary)!important}
.sidebar a.active{background:var(--ey-surface-muted)!important;color:var(--primary)!important;font-weight:650;box-shadow:none!important}
.sidebar a.active::before{display:none!important}
.nav-group-heading{margin:14px 0 6px;padding-inline:10px!important}
.sidebar-footer{margin-top:auto;padding:8px;border:0!important;border-radius:12px;background:transparent!important}
#userDropdown{width:100%;min-height:40px;padding:8px 10px;border:0;border-radius:12px;background:transparent;color:var(--text-normal);text-align:left}
#userDropdown:hover{background:var(--ey-surface-muted)}
#toggleBtn{width:36px;height:36px;border:0;border-radius:12px;background:transparent;color:var(--text-muted)}
#toggleBtn:hover{background:var(--ey-surface-muted);color:var(--primary)}
.sidebar-collapsed .sidebar{padding:8px}
.sidebar-collapsed #sidebarAvatar{width:32px;height:32px}
.sidebar-collapsed .sidebar a{justify-content:center;padding:9px 0}
.sidebar-collapsed .sidebar-footer{padding:8px}
.ui-panel,.soft,.card.ui-panel,.page-home .card,.page-project-detail .card{background:var(--ey-surface)!important;border:1px solid var(--ey-border)!important;border-radius:12px!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.list-group-item{background:transparent!important;border-color:var(--ey-border)!important;color:var(--text-normal)!important}
.card-body{color:var(--text-normal)}
.ui-toolbar{align-items:center;gap:12px;margin-bottom:12px!important}
.ui-toolbar-label{gap:3px}
.ui-section-title{color:var(--primary)!important;font-size:1.25rem;font-weight:650;letter-spacing:-.015em}
.text-secondary,.note{color:var(--text-muted)!important}
.btn{border-radius:12px;font-weight:600;box-shadow:none!important;letter-spacing:0}
.btn-primary{--bs-btn-bg:var(--ey-chat-accent);--bs-btn-border-color:var(--ey-chat-accent);--bs-btn-color:#fff;--bs-btn-hover-bg:var(--ey-chat-accent-hover);--bs-btn-hover-border-color:var(--ey-chat-accent-hover);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--ey-chat-accent-hover);--bs-btn-active-border-color:var(--ey-chat-accent-hover)}
.btn-outline-primary{--bs-btn-color:var(--ey-chat-accent);--bs-btn-border-color:var(--ey-border);--bs-btn-hover-bg:var(--ey-surface-muted);--bs-btn-hover-border-color:var(--ey-border);--bs-btn-hover-color:var(--primary)}
.btn-outline-secondary,.btn-outline-light{border-color:var(--ey-border)!important;background:transparent!important;color:var(--text-normal)!important}
.btn-outline-secondary:hover,.btn-outline-light:hover{background:var(--ey-surface-muted)!important;border-color:var(--ey-border)!important;color:var(--primary)!important}
.btn-link{color:var(--text-muted)}
.btn-link:hover{color:var(--primary)}
.btn:focus-visible,.form-control:focus,.form-select:focus{border-color:var(--ey-chat-accent)!important}
.form-control,.form-select{border-radius:12px;border-color:var(--ey-border)!important;background-color:var(--ey-surface)!important;color:var(--text-normal)!important}
.form-control::placeholder{color:var(--text-muted)}
.form-text{color:var(--text-muted)!important}
.table{--bs-table-bg:transparent;--bs-table-color:var(--text-normal);--bs-table-border-color:var(--ey-border)}
.table thead th{color:var(--text-muted)!important;font-size:.75rem;font-weight:600;letter-spacing:0;text-transform:none}
.table > :not(caption) > * > *{padding:.72rem .75rem}
code{color:var(--text-normal)!important;background:var(--ey-surface-muted)!important;border:1px solid var(--ey-border)!important;border-radius:7px!important;padding:.08rem .34rem}
.badge{border-radius:999px;font-weight:600}
.text-bg-dark,.text-bg-secondary{background-color:var(--ey-surface-muted)!important;color:var(--text-normal)!important;border-color:var(--ey-border)!important}
.alert{border-radius:12px;border-color:var(--ey-border)!important}
.alert-warning{background:rgba(245,158,11,.12)!important;color:var(--text-normal)!important}
.page-home .home-identity-card .card-body,.content[data-page="home"] .home-identity-card .card-body{background:transparent!important}
.page-home #avatarImg,.content[data-page="home"] #avatarImg,#logoImg{width:72px;height:72px;box-shadow:none!important;border-color:var(--ey-border)!important}
.page-home #nameText,.content[data-page="home"] #nameText,#projectNameText{color:var(--primary)!important;font-size:1.2rem;font-weight:650;letter-spacing:-.01em}
.home-provider-card .table-responsive,.content[data-page="home"] .home-provider-card .table-responsive{border:1px solid var(--ey-border);border-radius:12px}
.project-item{margin:0 0 8px!important;padding:14px 16px!important;border:1px solid var(--ey-border)!important;border-radius:12px!important;background:var(--ey-surface)!important;box-shadow:none!important}
.project-item:hover{background:var(--ey-surface-muted)!important;border-color:var(--ey-border)!important;box-shadow:none!important}
.project-name{color:var(--primary)!important;font-size:1rem;font-weight:650}
.ui-list-empty{margin:0!important;border-radius:12px!important;background:var(--ey-surface)!important}
.app-card{border-radius:12px!important;background:var(--ey-surface)!important}
.ru-list{gap:10px}
.toast{border-radius:12px;border:1px solid var(--ey-border)}
@media (max-width: 991.98px){
  .content{margin-left:0!important;margin-top:var(--topbar-h);padding:18px 14px}
  .content > .container-xl{max-width:100%;padding-inline:0;padding-top:10px!important}
  .sidebar{width:min(86vw,300px);padding:8px}
  body::before{height:var(--topbar-h);background:var(--ey-page-bg)!important;border-bottom:1px solid var(--ey-border);backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media (max-width: 767.98px){
  .content{padding:14px 12px}
  .ui-panel,.soft,.card.ui-panel,.page-home .card,.page-project-detail .card{border-radius:12px!important}
  .ui-toolbar{align-items:flex-start!important}
  .page-home #avatarImg,.content[data-page="home"] #avatarImg,#logoImg{width:60px;height:60px}
}
:root{--ey-final-bg:#ffffff;--ey-final-sidebar:#f7f7f8;--ey-final-surface:#ffffff;--ey-final-surface-subtle:#f4f4f5;--ey-final-border:#e6e6e8;--ey-final-text:#303030;--ey-final-muted:#747474;--ey-final-heading:#171717;--ey-final-accent:#1f1f1f;--ey-final-accent-hover:#101010;--ey-final-radius:16px;--ey-final-radius-sm:11px;--ey-final-content:1040px}
:root[data-bs-theme="dark"]{--ey-final-bg:#212121;--ey-final-sidebar:#171717;--ey-final-surface:#2f2f2f;--ey-final-surface-subtle:#262626;--ey-final-border:#3f3f3f;--ey-final-text:#ececec;--ey-final-muted:#b7b7b7;--ey-final-heading:#ffffff}
html,body{background:var(--ey-final-bg)!important;color:var(--ey-final-text)!important}
body{font-size:14px!important;line-height:1.55!important;letter-spacing:0!important;background-image:none!important}
#spa-content{background:var(--ey-final-bg)!important}
.content{background:var(--ey-final-bg)!important;padding:26px 30px 44px!important}
.content > .container-xl{max-width:var(--ey-final-content)!important;padding:18px 0 46px!important}
.page-home .content > .container-xl,.content[data-page="home"] > .container-xl{max-width:900px!important}
.page-consent .content > .container-xl,.content[data-page="consent"] > .container-xl{max-width:760px!important}
.sidebar{width:260px!important;padding:8px!important;background:var(--ey-final-sidebar)!important;border-right:1px solid var(--ey-final-border)!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#sidebarAvatar{width:32px!important;height:32px!important;box-shadow:none!important;border-color:var(--ey-final-border)!important}
#sidebarName{font-size:.9rem!important;font-weight:600!important;color:var(--ey-final-heading)!important}
.sidebar .small{font-size:.76rem!important}
.sidebar .menu{padding:2px 0 8px!important}
.sidebar a{min-height:38px!important;margin:1px 0!important;padding:8px 10px!important;gap:10px!important;border:0!important;border-radius:12px!important;background:transparent!important;color:var(--ey-final-text)!important;font-weight:500!important;box-shadow:none!important;transform:none!important}
.sidebar a i{width:20px!important;color:var(--ey-final-muted)!important;font-size:.98rem!important;opacity:1!important}
.sidebar a span{margin-left:0!important}
.sidebar a:hover,.sidebar a.active{background:var(--ey-final-surface-subtle)!important;color:var(--ey-final-heading)!important}
.sidebar a.active{font-weight:650!important}
.sidebar a.active::before{display:none!important}
.nav-group-heading{margin:12px 0 4px!important;padding:0 10px!important}
.sidebar-footer{padding:6px!important;margin-top:auto!important;border:0!important;background:transparent!important;border-radius:12px!important}
#userDropdown{width:100%!important;min-height:38px!important;padding:8px 10px!important;border:0!important;border-radius:12px!important;background:transparent!important;color:var(--ey-final-text)!important;text-align:left!important}
#userDropdown:hover,#toggleBtn:hover{background:var(--ey-final-surface-subtle)!important;color:var(--ey-final-heading)!important}
#toggleBtn{width:36px!important;height:36px!important;padding:0!important;border:0!important;background:transparent!important;color:var(--ey-final-muted)!important;border-radius:12px!important}
.sidebar-collapsed .sidebar{width:72px!important}
.sidebar-collapsed .content{margin-left:72px!important}
.sidebar-collapsed .sidebar a{justify-content:center!important;padding-inline:0!important}
.ui-panel,.soft,.card,.card.ui-panel,.page-home .card,.page-project-detail .card{background:var(--ey-final-surface)!important;border:1px solid var(--ey-final-border)!important;border-radius:var(--ey-final-radius)!important;box-shadow:none!important;color:var(--ey-final-text)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.list-group-item{background:transparent!important;border-color:var(--ey-final-border)!important;color:var(--ey-final-text)!important}
.card-body{color:var(--ey-final-text)!important}
.text-secondary,.note{color:var(--ey-final-muted)!important}
.ui-toolbar{align-items:center!important;margin-bottom:14px!important;gap:12px!important}
.ui-toolbar-label{gap:3px!important}
.ui-section-title,h5.fw-semibold{color:var(--ey-final-heading)!important;font-size:1.22rem!important;font-weight:650!important;letter-spacing:-.015em!important}
.btn{border-radius:12px!important;font-weight:600!important;box-shadow:none!important;letter-spacing:0!important}
.btn-primary{--bs-btn-bg:var(--ey-final-accent)!important;--bs-btn-border-color:var(--ey-final-accent)!important;--bs-btn-color:#fff!important;--bs-btn-hover-bg:var(--ey-final-accent-hover)!important;--bs-btn-hover-border-color:var(--ey-final-accent-hover)!important;--bs-btn-hover-color:#fff!important}
.btn-outline-primary,.btn-outline-secondary,.btn-outline-light{border-color:var(--ey-final-border)!important;background:transparent!important;color:var(--ey-final-text)!important}
.btn-outline-primary:hover,.btn-outline-secondary:hover,.btn-outline-light:hover{background:var(--ey-final-surface-subtle)!important;border-color:var(--ey-final-border)!important;color:var(--ey-final-heading)!important}
.btn-link{color:var(--ey-final-muted)!important}
.btn-link:hover{color:var(--ey-final-heading)!important}
.form-control,.form-select{border-radius:12px!important;border-color:var(--ey-final-border)!important;background:var(--ey-final-surface)!important;color:var(--ey-final-text)!important}
.form-control::placeholder{color:var(--ey-final-muted)!important}
.form-text{color:var(--ey-final-muted)!important}
.modal-content{background:var(--ey-final-surface)!important;border:1px solid var(--ey-final-border)!important;border-radius:12px!important;color:var(--ey-final-text)!important}
.table{--bs-table-bg:transparent!important;--bs-table-color:var(--ey-final-text)!important;--bs-table-border-color:var(--ey-final-border)!important;margin-bottom:0!important}
.table thead th{font-size:.75rem!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--ey-final-muted)!important;padding-top:.78rem!important;padding-bottom:.58rem!important}
.table > :not(caption) > * > *{padding:.74rem .75rem!important;vertical-align:middle!important}
code{background:var(--ey-final-surface-subtle)!important;border:1px solid var(--ey-final-border)!important;color:var(--ey-final-text)!important;border-radius:7px!important;padding:.08rem .34rem!important}
.badge{border-radius:999px!important;font-weight:600!important}
.text-bg-dark,.text-bg-secondary{background:var(--ey-final-surface-subtle)!important;color:var(--ey-final-text)!important;border-color:var(--ey-final-border)!important}
.alert{border-radius:12px!important;border-color:var(--ey-final-border)!important}
.page-home .home-identity-card,.content[data-page="home"] .home-identity-card{border-radius:12px!important;overflow:hidden!important}
.page-home .home-identity-card .card-body,.content[data-page="home"] .home-identity-card .card-body{padding:22px!important;background:transparent!important}
.page-home .identity-header,.content[data-page="home"] .identity-header{align-items:center!important;gap:16px!important}
.page-home #avatarImg,.content[data-page="home"] #avatarImg{width:68px!important;height:68px!important;border-color:var(--ey-final-border)!important;box-shadow:none!important}
.page-home #avatarEditBtn,.content[data-page="home"] #avatarEditBtn{width:30px!important;height:30px!important;padding:0!important;border-radius:12px!important;background:var(--ey-final-surface)!important;border:1px solid var(--ey-final-border)!important;color:var(--ey-final-text)!important}
.page-home #nameText,.content[data-page="home"] #nameText{font-size:1.22rem!important;font-weight:650!important;color:var(--ey-final-heading)!important;letter-spacing:-.01em!important}
.page-home .home-provider-card .card-body,.content[data-page="home"] .home-provider-card .card-body{padding:22px!important}
.page-home .home-provider-toolbar,.content[data-page="home"] .home-provider-toolbar{align-items:flex-start!important}
.page-home .home-provider-table tbody tr:hover,.content[data-page="home"] .home-provider-table tbody tr:hover{background:var(--ey-final-surface-subtle)!important}
.page-home .home-provider-card .table-responsive,.content[data-page="home"] .home-provider-card .table-responsive{border:1px solid var(--ey-final-border)!important;border-radius:12px!important;overflow:auto!important}
.page-project-list .content > .container-xl,.content[data-page="project-list"] > .container-xl{max-width:980px!important}
.project-item{margin:0!important;padding:14px 16px!important;border:1px solid var(--ey-final-border)!important;border-radius:12px!important;background:var(--ey-final-surface)!important;box-shadow:none!important}
.project-item:hover{background:var(--ey-final-surface-subtle)!important;box-shadow:none!important;border-color:var(--ey-final-border)!important}
.project-name{font-size:1rem!important;font-weight:650!important;color:var(--ey-final-heading)!important}
.ui-list-empty{margin:0!important;padding:38px 16px!important;background:var(--ey-final-surface)!important;border:1px dashed var(--ey-final-border)!important;border-radius:12px!important}
.page-project-detail .content > .container-xl,.content[data-page="project-detail"] > .container-xl{max-width:1080px!important}
#logoImg{width:68px!important;height:68px!important;border-radius:12px!important;border-color:var(--ey-final-border)!important;box-shadow:none!important}
#projectNameText{font-size:1.24rem!important;font-weight:650!important;color:var(--ey-final-heading)!important;letter-spacing:-.01em!important}
.app-card{border-radius:12px!important;background:var(--ey-final-surface)!important;overflow:hidden!important}
.ru-list{gap:10px!important}
.page-consent main{background:var(--ey-final-bg)!important}
.page-consent .card,.page-consent .ui-panel{background:var(--ey-final-surface)!important;border:1px solid var(--ey-final-border)!important;border-radius:12px!important;box-shadow:none!important}
.page-consent .btn-primary{min-height:42px!important}
.page-consent .text-light{color:var(--ey-final-text)!important}
.page-consent .bg-dark{background:var(--ey-final-surface)!important}
.topbar{height:50px!important;flex:0 0 50px!important;padding:0 18px!important;border-bottom:1px solid var(--ey-final-border)!important;background:rgba(255,255,255,.02)!important}
.top-title{color:var(--ey-final-heading)!important;font-size:.94rem!important;font-weight:650!important;letter-spacing:-.01em!important}
.top-lock{padding:4px 10px!important;border-radius:999px!important;border:1px solid var(--ey-final-border)!important;background:var(--ey-final-surface-subtle)!important;color:var(--ey-final-muted)!important}
.top-lock i{color:inherit!important}
.greet{gap:10px!important;margin:0 0 6px!important}
.greet .star i{font-size:30px!important}
.greet h1{color:var(--ey-final-heading)!important;font-size:clamp(1.55rem,2vw,1.95rem)!important;font-weight:650!important;letter-spacing:-.03em!important;line-height:1.08!important}
.home-sub{margin:0 0 16px!important;color:var(--ey-final-muted)!important;font-size:.86rem!important}
.home-chips{gap:10px!important;margin:0 0 16px!important}
.home-chip{height:36px!important;padding:0 13px!important;border-radius:999px!important;border:1px solid var(--ey-final-border)!important;background:var(--ey-final-surface)!important;color:var(--ey-final-text)!important;box-shadow:none!important}
.home-chip:hover{background:var(--ey-final-surface-subtle)!important;border-color:var(--ey-final-border)!important}
.home-chip i{color:var(--ey-final-muted)!important}
.composer{border-radius:12px!important;border:1px solid var(--ey-final-border)!important;background:var(--ey-final-surface)!important;box-shadow:none!important}
.composer:focus-within{border-color:var(--t-acc)!important}
.composer textarea{color:var(--ey-final-heading)!important;font-size:15px!important;line-height:1.5!important}
.composer textarea::placeholder{color:var(--ey-final-muted)!important}
.attach-preview.show{display:flex!important}
.attach-chip{border-radius:12px!important;border:1px solid var(--ey-final-border)!important;background:var(--ey-final-surface-subtle)!important;color:var(--ey-final-text)!important}
.attach-chip img{border-radius:8px!important}
.attach-chip button{color:var(--ey-final-muted)!important}
.composer .cbar{gap:8px!important;margin-top:8px!important;flex-wrap:nowrap!important}
.composer .cbar .send-wrap{display:flex!important;align-items:center!important;gap:7px!important;flex:0 0 auto!important}
.cbtn,.model,.send,.stop{border:1px solid var(--ey-final-border)!important;background:var(--ey-final-surface-subtle)!important;color:var(--ey-final-text)!important;border-radius:12px!important;box-shadow:none!important}
.cbtn:hover,.model:hover,.stop:hover{background:var(--ey-final-surface)!important;color:var(--ey-final-heading)!important}
.model{max-width:160px!important;padding:0 11px!important;height:34px!important;font-size:.78rem!important}
.model span::after{display:none!important}
.send{background:var(--ey-final-heading)!important;color:var(--ey-final-bg)!important;border-color:var(--ey-final-heading)!important}
.send:hover{background:var(--ey-final-accent-hover)!important;color:#fff!important}
.stop{color:var(--ey-final-muted)!important}
.msgs{gap:18px!important;padding:8px 0 22px!important}
.msg{gap:10px!important}
.msg .av{width:32px!important;height:32px!important;flex:0 0 32px!important;border-radius:50%!important;border:1px solid var(--ey-final-border)!important;background:var(--ey-final-surface-subtle)!important;color:var(--ey-final-heading)!important}
.msg .body{max-width:min(820px,90%)!important}
.who{color:var(--ey-final-muted)!important;font-size:.78rem!important;font-weight:650!important;margin-bottom:6px!important}
.liveico{width:6px!important;height:6px!important}
.bubble{color:var(--ey-final-text)!important;font-size:15px!important;line-height:1.7!important}
.msg.u .bubble{background:var(--ey-final-surface-subtle)!important;border:1px solid var(--ey-final-border)!important;border-radius:12px 12px 6px 12px!important;color:var(--ey-final-heading)!important;padding:12px 14px!important}
.msg.a .bubble{padding-top:0!important}
.bubble p,.bubble ul,.bubble ol{margin-top:8px!important;margin-bottom:8px!important}
.bubble code{border-radius:6px!important;padding:.1rem .35rem!important}
.tabs{margin:0 10px 10px!important;gap:10px!important}
.tab{min-height:32px!important;padding:0 2px!important;color:var(--ey-final-muted)!important}
.tab.on{color:var(--ey-final-heading)!important}
.tab.on::after{bottom:-5px!important;height:2px!important;border-radius:999px!important}
.foot-menu{background:var(--ey-final-surface)!important;border:1px solid var(--ey-final-border)!important}
.foot-menu a,.foot-menu button{color:var(--ey-final-text)!important}
.foot-menu a:hover,.foot-menu button:hover{background:var(--ey-final-surface-subtle)!important}
@media (max-width: 991.98px){
  .content{margin-left:0!important;margin-top:var(--topbar-h)!important;padding:16px 14px 34px!important}
  .content > .container-xl{max-width:100%!important;padding:10px 0 34px!important}
  .sidebar{width:min(86vw,300px)!important}
  .sidebar-collapsed .sidebar{width:min(86vw,300px)!important}
  .sidebar-collapsed .content{margin-left:0!important}
  body::before{height:var(--topbar-h)!important;background:var(--ey-final-bg)!important;border-bottom:1px solid var(--ey-final-border)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
}
@media (max-width: 767.98px){
  body{font-size:13.75px!important}
  .content{padding:14px 12px 30px!important}
  .ui-panel,.soft,.card,.card.ui-panel,.page-home .card,.page-project-detail .card{border-radius:12px!important}
  .ui-toolbar{align-items:flex-start!important;margin-bottom:12px!important}
  .page-home .home-identity-card .card-body,.content[data-page="home"] .home-identity-card .card-body{padding:18px!important}
  .page-home #avatarImg,.content[data-page="home"] #avatarImg,#logoImg{width:58px!important;height:58px!important}
  .project-item{padding:13px 14px!important;border-radius:12px!important}
  .table > :not(caption) > * > *{padding:.66rem .62rem!important}
}
/* ==== eywal-desktop.css ==== */
:root{--ey-bg:#262624;--ey-bg-side:#1c1b19;--ey-bg-elev:#30302e;--ey-bg-elev2:#34332f;--ey-hover:rgba(255,255,255,.06);--ey-active:rgba(255,255,255,.10);--ey-bd:rgba(255,255,255,.09);--ey-bd2:rgba(255,255,255,.14);--ey-tx:#f5f4ee;--ey-tx2:#c6c6bf;--ey-tx3:#9a9a93;--ey-acc:#3f59c2;--ey-acc2:#2f49a6;--ey-acc-soft:rgba(63,89,194,.16);--ey-safe:#55d08f;--ey-safe-soft:rgba(85,208,143,.14);--ey-focus:rgba(255,238,220,.86);--ey-shadow:0 18px 46px rgba(0,0,0,.26);--ey-serif:Georgia,"Iowan Old Style","Times New Roman",serif;--ey-sans:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif}
:root[data-bs-theme="light"]{--ey-bg:#ffffff;--ey-bg-side:#f7f7f5;--ey-bg-elev:#efeeea;--ey-bg-elev2:#e6e5df;--ey-hover:rgba(0,0,0,.055);--ey-active:rgba(0,0,0,.085);--ey-bd:rgba(0,0,0,.10);--ey-bd2:rgba(0,0,0,.14);--ey-tx:#20222a;--ey-tx2:#4d5057;--ey-tx3:#83868d;--ey-shadow:0 16px 40px rgba(0,0,0,.12)}
:root[data-bs-theme="light"] .side-tabs{background:rgba(0,0,0,.05)}
:root[data-bs-theme="light"] .side-tab.on{background:rgba(0,0,0,.10)}
:root[data-bs-theme="light"] .side .chat-act:hover{background:rgba(0,0,0,.08)}
:root[data-bs-theme="light"] .side .chat-act.danger:hover{background:var(--t-danger-soft);color:var(--t-danger)}
:root[data-bs-theme="light"] .ey-chat-menu{background:var(--t-card);border-color:var(--t-bd)}
:root[data-bs-theme="light"] .ecm-item.danger,:root[data-bs-theme="light"] .ecm-item.danger i{color:var(--t-danger)}
:root[data-bs-theme="light"] .side .logo-mark img{filter:invert(1) hue-rotate(180deg)}
.app{display:flex;height:100vh;height:100dvh;width:100%;background:var(--ey-bg);color:var(--ey-tx);font-family:var(--ey-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.app,.app *{box-sizing:border-box}
.app a,.app button,.app input,.app textarea,.app select{transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.app .side,.app .main{border-radius:0!important}
.app button{font-family:var(--t-font);color:inherit;cursor:pointer;border:none;background:none}
body.page-home.page-chat.side-lock{overflow:hidden}
.app ::-webkit-scrollbar{width:10px}
.app ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.10);border-radius:8px;border:3px solid transparent;background-clip:padding-box}
.app ::-webkit-scrollbar-thumb:hover{background:var(--t-elev);background-clip:padding-box}
.app .side{width:260px;flex:0 0 260px;background:var(--ey-bg-side);border-right:1px solid var(--ey-bd);display:flex;flex-direction:column;min-height:0;transition:color .15s,background-color .15s,border-color .15s,opacity .15s;position:static;height:100vh;height:100dvh;z-index:auto}
.app.collapsed .side{width:66px;flex-basis:66px}
.mobile-side-btn,.side-overlay{display:none}
.side-head{padding:11px 12px 10px;display:flex;align-items:center;gap:10px}
.side .logo{display:flex;align-items:center;gap:11px;font-weight:500;text-decoration:none;color:var(--ey-tx);min-width:0}
.side .logo-text,.side .logo-brand{display:none!important}
.side .mark.logo-mark{width:42px;height:42px;flex:0 0 42px;border-radius:12px;display:grid;place-items:center;background:transparent;color:var(--ey-acc);box-shadow:none}
.side .mark svg{width:26px;height:26px}
.side .mark img{width:30px;height:30px;max-width:30px;max-height:30px;display:block;object-fit:contain;border:none}
.logo-fallback{display:none;font-size:12px;font-weight:700;color:var(--ey-acc);line-height:1;letter-spacing:.01em}
.logo-mark.is-fallback .logo-img{display:none}
.logo-mark.is-fallback .logo-fallback{display:block}
.app.collapsed .logo-text{display:none!important}
.side .item:focus-visible,.foot-menu a:focus-visible,.foot-menu button:focus-visible,.mobile-side-btn:focus-visible,.cbtn:focus-visible,.send:focus-visible,.stop:focus-visible,.model:focus-visible,.msg-tools button:focus-visible,.pd-btn:focus-visible,.pd-icon-btn:focus-visible,.pd-icon-sq:focus-visible,.pcard:focus-visible,.eywal-projects .ep-new:focus-visible{outline:2px solid var(--ey-focus);outline-offset:2px}
.side .tabs{margin:0 10px 8px;display:flex;gap:14px;padding:0;background:none;border:0;box-shadow:none}
.side .tab{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:7px;height:30px;padding:0;min-height:30px;font-size:13px;font-weight:600;color:var(--ey-tx2);border-radius:0;transition:color .15s,background-color .15s,border-color .15s,opacity .15s;letter-spacing:0;border:0;box-shadow:none;background:none;opacity:.82}
.side .tab:hover{color:var(--ey-tx);opacity:1}
.side .tab.on{color:var(--ey-tx);opacity:1}
.side .tab.on::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--ey-acc);border-radius:0;opacity:1}
.side .tab:focus-visible{outline:2px solid var(--ey-acc);outline-offset:-2px;color:var(--ey-tx)}
.side .tab i{font-size:15px;flex:0 0 auto}
.app.collapsed .tabs{flex-direction:column;gap:8px;margin:0 auto 10px;width:44px;padding:0}
.app.collapsed .tab span{display:none}
.app.collapsed .tab{width:36px;height:36px;padding:0;flex:0 0 36px}
.app.collapsed .tab + .tab{border-left:0}
.side-tabs{display:flex;gap:2px;margin:2px 8px 4px;padding:3px;background:rgba(255,255,255,.05);border-radius:12px}
.side-tab{flex:1 1 0;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:6px 4px;border:0;border-radius:12px;background:transparent;color:var(--ey-tx2);font:inherit;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.side-tab i{flex:0 0 auto;font-size:14px}
.side-tab .stab-tx{overflow:hidden;text-overflow:ellipsis}
.side-tab:hover{color:var(--ey-tx)}
.side-tab.on{background:var(--t-elev);color:var(--ey-tx)}
.side-tab:focus:not(:focus-visible){outline:none}
.app.collapsed .side-tabs{flex-direction:column;align-self:center;align-items:center;gap:3px;margin:8px 0 2px;padding:0;background:transparent}
.app.collapsed .side-tab{flex:0 0 auto;width:42px;min-height:38px;padding:0;gap:0}
.app.collapsed .side-tab.on{background:var(--ey-active)}
.app.collapsed .side-tab .stab-tx{display:none}
.side-menu{display:flex;flex-direction:column;gap:1px;padding:8px 7px 2px}
.side-mi{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:8px 11px;border:0;border-radius:12px;background:transparent;color:var(--ey-tx,#f5f4ee);font:inherit;font-size:15px;text-align:left;text-decoration:none;cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.side-mi:hover{background:var(--ey-hover,rgba(255,255,255,.06))}
.side-mi.on{background:var(--ey-active,rgba(255,255,255,.10))}
.side-mi .mi-ic{flex:0 0 26px;display:inline-flex;align-items:center;justify-content:center;font-size:17px;color:var(--ey-tx2,#cfcdc4)}
.side-mi.on .mi-ic{color:var(--ey-tx,#f5f4ee)}
.side-mi .mi-tx{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side-mi .mi-plus{flex:0 0 30px;width:30px;height:30px;border-radius:50%;border:1px solid var(--ey-bd,rgba(255,255,255,.16));font-size:13px}
.app.collapsed .side-menu{align-items:center}
.app.collapsed .side-mi .mi-tx{display:none}
.app.collapsed .side-mi{width:42px;justify-content:center;gap:0;padding:8px 0}
.side-list{flex:1;min-height:0;overflow-y:auto;padding:6px 7px 4px}
.grouplbl{font-size:13px;letter-spacing:.005em;text-transform:none;color:var(--ey-tx3);font-weight:500;padding:10px 11px 5px}
.grouplbl-row{display:flex;align-items:center;gap:8px}
.grouplbl-row>span{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grouplbl-act{flex:0 0 auto;width:26px;height:26px;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--ey-tx3);cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.grouplbl-act i{font-size:13px;color:inherit}
.grouplbl-act:hover{background:var(--ey-hover);color:var(--ey-tx)}
.app.collapsed .grouplbl-act{display:none}
.side .item{position:relative;display:flex;align-items:center;gap:11px;min-height:36px;padding:7px 11px;border-radius:12px;color:var(--ey-tx2);font-size:15px;white-space:nowrap;overflow:hidden;cursor:pointer;text-decoration:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.side .item:hover{background:var(--ey-hover);color:var(--ey-tx)}
.side .item.on{background:var(--ey-active);color:var(--ey-tx)}
.side .item i{font-size:16px;flex:0 0 20px;color:var(--ey-tx3);font-style:normal;text-align:center}
.side .item.on i{color:var(--ey-acc)}
.side .item .t{overflow:hidden;text-overflow:ellipsis}
.side .chat-item>i{display:none}
.side .chat-item .chat-acts{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:none;align-items:center;gap:1px;padding-left:16px;border-radius:12px;background:transparent}
.side .chat-item:hover .chat-acts,.side .chat-item:focus-within .chat-acts{display:flex}
.side .chat-item.on .chat-acts{background:transparent}
.side .chat-act{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:var(--ey-tx3);cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.side .chat-act i{font-size:12px;flex:none;color:inherit}
.side .item.on .chat-act i{color:inherit}
.side .chat-act:hover{background:rgba(255,255,255,.12);color:var(--ey-tx)}
.side .chat-act.danger:hover{background:var(--t-danger-soft);color:var(--t-danger)}
.app.collapsed .side .chat-acts{display:none!important}
.ey-chat-menu{position:fixed;z-index:9000;min-width:178px;padding:5px;border-radius:12px;background:var(--t-elev);border:1px solid var(--t-bd2);display:none}
.ey-chat-menu.open{display:block}
.ecm-item{display:flex;align-items:center;gap:11px;width:100%;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--ey-tx);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}
.ecm-item i{width:16px;text-align:center;font-size:13px;color:var(--ey-tx3)}
.ecm-item:hover{background:var(--ey-hover)}
.ecm-item.danger{color:var(--t-danger)}
.ecm-item.danger i{color:var(--t-danger)}
.side .item.empty{cursor:default;color:var(--ey-tx3)}
.side .item.empty:hover{background:transparent;color:var(--ey-tx3)}
.proj .item i{width:30px;height:30px;flex:0 0 30px;border-radius:12px;display:grid;place-items:center;font-size:13.5px;color:#fff;background:var(--t-acc);transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.proj .item i,.side .proj-link i{color:#fff!important}
.proj .sub{font-size:12px;color:var(--ey-tx3)}
.side-foot{border-top:1px solid var(--ey-bd);padding:10px 10px 12px;display:flex;flex-direction:column;margin-top:auto}
.app.collapsed .side .item .t{display:none}
.app.collapsed .side-list{display:none}
.foot-row{display:flex;gap:6px;margin-top:8px;position:relative}
.app.collapsed .foot-row{flex-direction:column;align-items:center;gap:6px}
.side-head{justify-content:space-between}
.side-head .logo{flex:1 1 auto;min-width:0}
.head-toggle{flex:0 0 auto;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:12px;background:transparent;color:var(--ey-tx3);cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.head-toggle i{font-size:16px}
.head-toggle:hover{background:var(--ey-hover);color:var(--ey-tx)}
.head-toggle:focus:not(:focus-visible){outline:none}
.foot-user{display:flex;align-items:center;gap:10px;width:100%;padding:7px 9px;border:0;border-radius:12px;background:transparent;color:var(--ey-tx);font:inherit;cursor:pointer;text-align:left;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.foot-user:hover{background:var(--ey-hover)}
.foot-user .fu-ava{width:30px;height:30px;flex:0 0 30px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--ey-bg-elev2,#34332f);color:var(--ey-tx);font-size:13px;font-weight:600}
.foot-user .fu-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.foot-user .fu-nm{font-size:13.5px;font-weight:600;color:var(--ey-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.foot-user .fu-sub{font-size:11.5px;color:var(--ey-tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.foot-user .fu-chev{flex:0 0 auto;font-size:12px;color:var(--ey-tx3)}
.app.collapsed .side-head{flex-direction:column;gap:8px;align-items:center}
.app.collapsed .side-head .logo-text{display:none!important}
.app.collapsed .foot-user{justify-content:center;padding:6px;gap:0}
.app.collapsed .foot-user .fu-meta,.app.collapsed .foot-user .fu-chev{display:none}
.foot-profile{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:12px;color:var(--ey-tx2);text-decoration:none}
.foot-profile:hover{background:var(--ey-hover);color:var(--ey-tx)}
.foot-profile-head{cursor:default}
.foot-profile-head:hover{background:transparent;color:var(--ey-tx2)}
.foot-profile .side-foot-user{display:flex;flex-direction:column;min-width:0;gap:2px;line-height:1.2}
.foot-profile .side-foot-user .nm{font-size:12.5px;font-weight:500;color:var(--ey-tx)}
.foot-profile .side-foot-user .em{font-size:11px;color:var(--ey-tx3)}
.foot-profile .ava{width:24px;height:24px;flex:0 0 24px;font-size:12px}
.foot-profile i{margin-left:auto;font-size:12px;color:var(--ey-tx3)}
.foot-menu{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:var(--ey-bg-elev);border:1px solid var(--ey-bd2);border-radius:12px;padding:6px;display:none;z-index:30}
.foot-menu.open{display:block}
.foot-menu a,.foot-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:12px;color:var(--ey-tx2);font-size:13.2px;line-height:1.1;text-align:left;text-decoration:none;justify-content:flex-start}
.foot-menu a:hover,.foot-menu button:hover{background:var(--ey-hover);color:var(--ey-tx)}
.foot-menu .danger{color:var(--t-tx2)}
.foot-menu .sep{height:1px;background:var(--ey-bd);margin:5px 4px}
.foot-menu i{font-size:15px;width:18px;text-align:center;font-style:normal}
.app .main{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--ey-bg);margin-left:0;min-height:0;height:100vh;height:100dvh;overflow:hidden}
.is-hidden{display:none!important}
.topbar{height:52px;flex:0 0 52px;display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid transparent}
.topbar.bordered{border-bottom-color:var(--ey-bd)}
.top-title{font-size:14.5px;font-weight:500;color:var(--ey-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lock{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ey-safe);background:var(--ey-safe-soft);border:1px solid var(--t-bd2);padding:3px 9px;border-radius:999px}
.lock i{font-size:13px;color:var(--ey-safe);font-style:normal}
.top-lock{color:var(--ey-safe);background:var(--ey-safe-soft);border-color:rgba(85,208,143,.35)}
.top-lock i{color:var(--ey-safe);font-size:13px}
.lock-mark{color:var(--ey-safe)}
.top-spacer{flex:1}
.scroll{flex:1;overflow-y:auto;display:flex;justify-content:center;scroll-behavior:smooth}
.app .col{width:100%;max-width:780px;padding:34px 28px 40px}
#view-chat.ey-home-empty{min-height:calc(100dvh - 52px);display:flex;flex-direction:column;justify-content:center;padding-bottom:12vh}
#view-chat.ey-home-empty #msgs,#view-chat:not(.ey-home-empty) .ey-greet-block{display:none}
.greet{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 8px;text-align:center}
.greet .star{color:var(--ey-acc);flex:0 0 auto}
.greet .star svg{width:34px;height:34px}
.greet .star i{font-size:34px;line-height:1}
.greet h1{font-family:var(--ey-sans);font-weight:500;font-size:30px;letter-spacing:0;color:var(--t-tx);margin:0}
.home-sub{margin:2px 0 14px;text-align:center;color:var(--ey-tx2);font-size:13px;letter-spacing:.01em}
.home-chips{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.home-chip{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 11px;border:1px solid var(--ey-bd);border-radius:8px;background:rgba(255,255,255,.02);color:var(--ey-tx2);font-size:12.8px;font-weight:600;letter-spacing:.01em}
.home-chip:hover{background:var(--ey-hover);color:var(--ey-tx);border-color:var(--ey-bd2)}
.home-chip i{font-size:13px;color:var(--ey-acc)}
.app .sub{color:var(--ey-tx2);font-size:13.5px;margin:0 2px 18px;display:flex;align-items:center;justify-content:center;gap:8px;text-align:center}
.app .sub code{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;color:var(--ey-tx);background:rgba(255,255,255,.06);padding:1px 7px;border-radius:6px}
.composer{width:100%;background:var(--t-elev);border:1px solid var(--t-bd2);border-radius:12px;padding:9px 9px 8px;transition:color .15s,background-color .15s,border-color .15s,opacity .15s;overflow:hidden;position:relative}
.composer--spaced{margin-top:18px;position:sticky;bottom:0;z-index:5;flex:0 0 auto;overflow:visible}
.composer--spaced::before{content:"";position:absolute;left:-28px;right:-28px;bottom:-40px;height:108px;z-index:-1;background:linear-gradient(to top,var(--ey-bg) 0%,color-mix(in srgb,var(--ey-bg) 96%,transparent) 42%,transparent 100%);pointer-events:none}
.composer:focus-within{border-color:var(--t-acc)}
.composer textarea{width:100%;background:none;border:none;outline:none;resize:none;color:var(--ey-tx);font-family:var(--t-font);font-size:15px;line-height:1.45;min-height:25px;max-height:170px;padding:1px 2px}
.composer textarea::placeholder{color:var(--ey-tx3)}
.attach-preview{display:none;gap:7px;flex-wrap:nowrap;margin:0 0 8px;overflow-x:auto;max-width:100%;padding:1px 1px 4px;scrollbar-width:thin;overscroll-behavior-x:contain}
.attach-preview.show{display:flex}
.attach-chip{display:flex;align-items:center;gap:7px;max-width:240px;min-width:0;min-height:34px;padding:4px 5px;border:1px solid var(--ey-bd);border-radius:8px;background:rgba(255,255,255,.045);color:var(--ey-tx2);flex:0 0 auto}
.attach-chip img{width:30px;height:30px;border-radius:7px;object-fit:cover;background:var(--t-card)}
.attach-name{min-width:0;max-width:148px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;color:var(--ey-tx)}
.attach-chip button{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;color:var(--ey-tx3);flex:0 0 28px}
.attach-chip button:hover{background:var(--ey-hover);color:var(--ey-tx)}
.composer .cbar{display:flex;align-items:center;gap:7px;margin-top:7px;min-height:32px}
.composer .cbar{flex-wrap:nowrap}
.cbtn{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;color:var(--ey-tx2);border:1px solid var(--ey-bd)}
.cbtn i{font-style:normal}
.cbtn:hover{background:var(--ey-hover);color:var(--ey-tx)}
.cbtn:disabled{opacity:.38;cursor:not-allowed}
.cbtn:disabled:hover{background:transparent;color:var(--ey-tx2)}
.composer .cbar .sp{flex:1}
.composer .cbar .send-wrap{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.model{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ey-tx);padding:5px 9px;border-radius:8px;white-space:nowrap;max-width:132px;overflow:hidden;text-overflow:ellipsis;font-weight:600;letter-spacing:.01em}
.model span{overflow:hidden;text-overflow:ellipsis}
.model i{font-style:normal}
.model:hover{background:var(--ey-hover);color:#fff}
.mode-pop{position:fixed;z-index:9000;min-width:250px;padding:6px;border-radius:12px;background:var(--t-elev);border:1px solid var(--t-bd2);display:none}
.mode-pop.open{display:block}
.mode-sec-lbl{font-size:11px;color:var(--ey-tx3);padding:6px 8px 3px;text-transform:uppercase;letter-spacing:.06em}
.mode-opt{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:0;border-radius:12px;background:transparent;color:var(--ey-tx);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.mode-opt>i:first-child{width:18px;text-align:center;font-size:14px;color:var(--t-acc-tx);flex:0 0 18px}
.mode-opt:hover{background:var(--ey-hover)}
.mode-opt .mo-t{flex:1 1 auto;display:flex;flex-direction:column;line-height:1.32}
.mode-opt .mo-t b{font-weight:600}
.mode-opt .mo-t em{font-style:normal;font-size:11.5px;color:var(--ey-tx3)}
.mode-opt .mo-chk{opacity:0;font-size:12px;color:var(--t-acc-tx);flex:0 0 auto}
.mode-opt.on .mo-chk{opacity:1}
.mode-opt.on>i:first-child{color:var(--t-acc-tx)}
.mode-pop .mode-opt{min-height:44px}
.model span{position:relative}
.model span::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--t-acc-soft);opacity:.65}
.send{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--ey-acc);color:#fff}
.send:hover{background:var(--ey-acc2)}
.send i{font-size:17px;font-style:normal}
.send.is-busy{opacity:.82}
.send:disabled,.send.is-empty{opacity:.42;cursor:default;background:var(--t-elev);color:var(--t-tx)}
.send.is-busy:disabled{opacity:.82;cursor:pointer;background:var(--ey-acc);color:#fff}
.stop{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:var(--t-danger);background:rgba(255,255,255,.10);border:1px solid var(--t-bd2)}
.composer{touch-action:manipulation}
.composer textarea,.composer .model,.composer .cbtn,.composer .send,.composer .stop{touch-action:manipulation}
.stop:hover{background:var(--t-elev);color:#fff}
.stop i{font-size:11px;font-style:normal}
#view-chat{min-height:calc(100dvh - 52px);display:flex;flex-direction:column;padding-bottom:12px}
.msgs{flex:1 1 auto;display:flex;flex-direction:column;gap:26px;padding:12px 0 24px}
.msg{display:flex;gap:9px;align-items:flex-start}
.msg .avatar,.msg .av{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border-radius:50%;font-size:14px;font-weight:700;color:var(--t-tx);background:transparent;border:1px solid var(--t-bd)}
.msg .body{min-width:0;max-width:min(760px,90%)}
.msg.user,.msg.u{justify-content:flex-end}
.msg.u .av{display:none}
.msg.user .avatar{display:none}
.msg.u .body{max-width:min(650px,74%);margin-left:auto}
.msg.system{justify-content:center}
.msg.system .av,.msg.system .who{display:none}
.msg.system .body{max-width:78%;text-align:center}
.who{font-size:12px;color:var(--ey-tx2);margin:0 0 4px;font-weight:650;letter-spacing:.01em;display:flex;align-items:center;gap:7px}
.liveico{width:7px;height:7px;border-radius:50%;background:#19c37d}
.bubble{padding:0;border:0;background:transparent;word-wrap:break-word;line-height:1.72;font-size:15.5px;color:var(--ey-tx);word-break:break-word}
.msg.u .bubble{background:var(--t-elev);border:1px solid var(--t-bd);border-radius:12px;padding:11px 15px;color:var(--t-tx);white-space:pre-wrap;line-height:1.58}
.msg.a .bubble{padding-top:1px}
.msg.a .bubble.typing{white-space:pre-wrap}
.msg.a .bubble.typing::after{content:"";display:inline-block;width:7px;height:1.05em;margin-left:2px;border-right:2px solid var(--ey-acc);vertical-align:-2px}
.msg.system .bubble{display:inline-flex;padding:7px 12px;border:1px solid var(--ey-bd);border-radius:999px;background:rgba(255,255,255,.04);font-size:12.5px;color:var(--ey-tx2)}
.bubble h1{font-size:1.35em;margin:18px 0 8px;font-weight:700;border-bottom:1px solid var(--ey-bd);padding-bottom:5px}
.bubble h2{font-size:1.18em;margin:16px 0 6px;font-weight:700}
.bubble h3{font-size:1.05em;margin:13px 0 5px;font-weight:700}
.bubble h1:first-child,.bubble h2:first-child,.bubble h3:first-child{margin-top:0}
.bubble p{margin:10px 0;line-height:1.74}
.bubble p:first-child{margin-top:0}
.bubble p:last-child{margin-bottom:0}
.bubble ul{margin:10px 0;padding-left:4px;list-style:none}
.bubble ul>li{position:relative;padding-left:20px;margin:6px 0;line-height:1.72}
.bubble ul>li::before{content:"\203A";position:absolute;left:4px;color:var(--ey-acc);font-weight:700}
.bubble ol{margin:10px 0;padding-left:22px}
.bubble ol>li{margin:6px 0;line-height:1.72}
.bubble blockquote{margin:10px 0;padding:6px 14px;border-left:3px solid var(--ey-acc);background:rgba(128,128,128,.06);border-radius:0 8px 8px 0;color:var(--ey-tx2)}
.bubble hr{margin:14px 0;border:0;border-top:1px solid var(--ey-bd)}
.bubble del{opacity:.7}
.bubble code{background:rgba(128,128,128,.12);border:1px solid var(--ey-bd);border-radius:5px;padding:1px 6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.845em}
.bubble strong{font-weight:700;color:var(--ey-tx)}
.bubble a{color:var(--ey-acc);text-decoration:none;word-break:break-word;overflow-wrap:anywhere}
.bubble a:hover{text-decoration:underline}
.ey-chat-surface{position:relative}
.ey-chat-surface .ey-chat-jump{position:absolute;left:50%;transform:translateX(-50%) translateY(6px);bottom:96px;z-index:6;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--ey-card,#2f2f2f);color:var(--ey-tx,#f4f4f4);border:1px solid var(--ey-bd,rgba(255,255,255,.16));opacity:0;visibility:hidden;pointer-events:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.ey-chat-surface .ey-chat-jump.show{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.ey-chat-surface .ey-chat-jump:hover{background:var(--ey-hover,#3a3a3a)}
.ey-chat-surface .chat-empty-chips .chat-chip{font:inherit;font-size:11.5px;color:var(--ey-tx2,#cfcfcf);cursor:pointer;border:1px solid var(--ey-bd,rgba(255,255,255,.14));border-radius:999px;padding:5px 11px;background:rgba(255,255,255,.035);transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.ey-chat-surface .chat-empty-chips .chat-chip:hover{background:var(--ey-acc,#7a5cff);color:#fff;border-color:transparent}
@media (prefers-reduced-motion: reduce){
  .ey-chat-surface .ey-chat-jump{transition:none}
}
@media (max-width:640px){
  .ey-chat-surface .ey-chat-jump{bottom:84px;width:34px;height:34px}
}
.msg-attachments{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.msg-attach{display:flex;align-items:center;gap:8px;min-width:0;max-width:min(260px,100%);border:1px solid var(--ey-bd);border-radius:12px;background:rgba(255,255,255,.045);padding:6px 8px;color:var(--ey-tx2)}
.msg-attach.is-img{display:block;padding:0;overflow:hidden;background:var(--t-card)}
.msg-attach img{display:block;max-width:240px;max-height:180px;object-fit:cover}
.msg-attach-ico{width:28px;height:28px;border-radius:7px;display:grid;place-items:center;flex:0 0 28px;background:rgba(255,255,255,.06);color:var(--ey-acc)}
.msg-attach-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}
.msg-tools{display:flex;gap:5px;margin-top:8px;opacity:0;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.msg:hover .msg-tools,.msg:focus-within .msg-tools{opacity:1}
.msg-tools button{width:30px;height:30px;display:grid;place-items:center;border:1px solid transparent;background:rgba(255,255,255,.02);color:var(--ey-tx3);cursor:pointer;font-size:12px;padding:0;border-radius:8px}
.msg-tools button:hover{color:var(--ey-tx);background:rgba(128,128,128,.11);border-color:var(--ey-bd)}
.msg-tools button:focus-visible{color:var(--ey-tx);background:rgba(128,128,128,.11)}
.msg-tools button.is-fbon{color:var(--ey-tx);background:var(--t-elev);border-color:var(--ey-bd);opacity:1}
.msg.editing .msg-tools{display:none}
.msg.u .msg-tools{justify-content:flex-end}
.msg-live{margin-left:8px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--ey-tx3);opacity:.8;letter-spacing:.2px;white-space:nowrap}
.msg-duration{margin-top:6px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--ey-tx3);opacity:.7}
.edit-box{display:flex;flex-direction:column;gap:9px;min-width:min(560px,72vw)}
.edit-box textarea{width:100%;min-height:96px;max-height:260px;resize:vertical;border:1px solid var(--t-bd2);border-radius:12px;background:var(--t-card);color:var(--ey-tx);font:inherit;line-height:1.55;padding:10px 12px;outline:none}
.edit-box textarea:focus{border-color:var(--t-bd2)}
.edit-actions{display:flex;justify-content:flex-end;gap:8px}
.edit-actions button{border:1px solid var(--ey-bd2);border-radius:12px;padding:7px 11px;font-size:12.5px;color:var(--ey-tx2);background:rgba(255,255,255,.03)}
.edit-actions button:hover{background:var(--ey-hover);color:var(--ey-tx)}
.edit-actions .edit-save{background:var(--ey-acc);border-color:var(--ey-acc);color:#fff}
.edit-actions .edit-save:hover{background:var(--ey-acc2);color:#fff}
.cblock{margin:12px 0;border:1px solid var(--t-bd);border-radius:12px;overflow:hidden;background:var(--t-card);box-shadow:none}
.cblock .cbar{display:flex;align-items:center;gap:8px;margin:0;padding:7px 13px;background:rgba(128,128,128,.055);border-bottom:1px solid var(--ey-bd);font-size:11px;color:var(--ey-tx3)}
.cblock .cbar .clang{font-weight:700;letter-spacing:.4px;text-transform:uppercase;font-size:10.5px;color:var(--ey-acc);opacity:.85}
.cblock .cbar .ccopy{margin-left:auto;border:0;background:transparent;color:var(--ey-tx3);cursor:pointer;font-size:11px;padding:4px 10px;border-radius:6px;white-space:nowrap;min-width:60px;text-align:right}
.cblock .cbar .ccopy:hover{color:var(--ey-acc);background:var(--ey-acc-soft)}
.cblock pre{margin:0;padding:13px 15px;overflow-x:auto;white-space:pre}
.cblock pre code{background:none;border:0;padding:0;font-size:12.5px;line-height:1.65;color:var(--t-acc-tx)}
.statuspill{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--ey-bd);border-radius:999px;background:var(--ey-bg-elev);color:var(--ey-tx2);font-size:12.5px}
.spin{width:12px;height:12px;border:2px solid var(--t-bd2);border-top-color:var(--ey-acc);border-radius:50%;display:inline-block}
.statuspill .verb{color:var(--ey-tx);font-weight:700}
.statuspill .sep,.statuspill .time{color:var(--ey-tx3)}
.eywal-projects{--ey-bg:#262624;--ey-bg-elev:#30302e;--ey-bg-elev2:#34332f;--ey-hover:rgba(255,255,255,.06);--ey-bd:rgba(255,255,255,.09);--ey-bd2:rgba(255,255,255,.14);--ey-tx:#f5f4ee;--ey-tx2:#bcbab1;--ey-tx3:#86847c;--ey-acc:#e1825d;--ey-acc2:#c96b47;--ey-acc-soft:rgba(225,130,93,.16);--ey-focus:rgba(255,238,220,.86);color:var(--ey-tx);max-width:860px;margin:0 auto;padding:8px 4px 40px}
.eywal-projects .ep-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.eywal-projects .ep-h{font-family:var(--t-font);font-weight:400;font-size:28px;margin:4px 0 0;color:var(--ey-tx)}
.eywal-projects .ep-s{color:var(--ey-tx2);font-size:13.5px;margin:8px 0 0}
.eywal-projects .ep-new{display:inline-flex;align-items:center;gap:9px;padding:10px 16px;border-radius:12px;background:var(--ey-acc);border:1px solid var(--ey-acc);color:#fff;font-size:14px;font-weight:500;transition:color .15s,background-color .15s,border-color .15s,opacity .15s;white-space:nowrap}
.eywal-projects .ep-new:hover{background:var(--ey-acc2);color:#fff}
.eywal-projects .ep-new:focus-visible,.eywal-projects .pcard:focus-visible{outline:2px solid var(--ey-focus);outline-offset:2px}
.eywal-projects .ep-new i,.eywal-projects .ep-icon-accent{font-style:normal}
.ep-icon-accent{color:var(--ey-acc)!important}
.eywal-projects .pgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:8px}
.pnew{grid-column:1 / -1;max-width:460px;margin:8px auto 0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 26px;border-radius:12px;background:var(--ey-bg-elev);border:1px solid var(--ey-bd)}
.pnew-ic{width:56px;height:56px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px;background:var(--t-acc);color:#fff;font-size:22px}
.pnew h3{margin:0 0 6px;font-size:19px;font-weight:700;color:var(--ey-tx)}
.pnew p{margin:0 0 18px;font-size:13px;color:var(--ey-tx2);line-height:1.5}
.pnew input{width:100%;height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--ey-bd2);background:var(--ey-bg);color:var(--ey-tx);font:inherit;font-size:14.5px;outline:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.pnew input::placeholder{color:var(--ey-tx3)}
.pnew input:focus{border-color:var(--t-acc)}
.pnew .pnew-ok{width:100%;height:44px;margin-top:14px;border-radius:12px;border:0;cursor:pointer;font:inherit;font-size:14.5px;font-weight:600;color:#fff;background:var(--t-acc);transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.pcard{padding:18px;border-radius:12px;background:var(--ey-bg-elev);border:1px solid var(--ey-bd);text-align:left;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.pcard:hover{background:var(--ey-bg-elev2);border-color:var(--ey-bd2)}
.pcard .pi{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--ey-acc-soft);color:var(--ey-acc);font-size:20px;margin-bottom:12px}
.pcard .pi i{font-style:normal}
.pcard h3{font-size:15.5px;font-weight:500;margin-bottom:5px;color:var(--ey-tx)}
.pcard p{font-size:13px;color:var(--ey-tx3);line-height:1.5}
.pcard .meta{display:flex;gap:14px;margin-top:13px;font-size:12px;color:var(--ey-tx3)}
.pcard .meta i{font-size:14px;vertical-align:-2px;margin-right:4px;font-style:normal}
.eywal-projects .pcard{position:relative;color:inherit;text-decoration:none}
.eywal-projects .pcard:hover{color:inherit}
.eywal-projects .pcard .pi{width:44px;height:44px;border-radius:12px;margin-bottom:12px}
.eywal-projects .pcard h3{margin:0 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eywal-projects .pcard .pi img{width:100%;height:100%;object-fit:cover}
.eywal-projects .pcard .pid{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--ey-tx3)}
.eywal-projects .pcard .meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px;align-items:center}
.eywal-projects .ep-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--ey-bd);color:var(--ey-tx2)}
.eywal-projects .ep-badge.danger{background:var(--t-danger-soft);border-color:var(--t-danger);color:var(--t-danger)}
.eywal-projects .ep-arrow{position:absolute;top:16px;right:16px;color:var(--ey-tx3);transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-projects .pcard:hover .ep-arrow{color:var(--ey-acc)}
.eywal-projects .ep-empty{grid-column:1/-1;text-align:center;padding:50px 20px;color:var(--ey-tx3);border:1px dashed var(--ey-bd2);border-radius:12px;background:rgba(255,255,255,.015)}
.eywal-projects .ep-empty i{font-size:34px;display:block;margin-bottom:14px;color:var(--ey-tx3)}
.eywal-projects .ep-empty .text{font-size:14px;color:var(--ey-tx2)}
.eywal-projects .ep-label{font-size:13px;font-weight:600;color:var(--ey-tx2,#bcbab1);margin-bottom:8px;display:block}
.eywal-projects .ep-input{width:100%;background:var(--t-card);border:1px solid var(--ey-bd2,rgba(255,255,255,.14));border-radius:12px;padding:10px 12px;color:var(--ey-tx,#f5f4ee);font-size:14px;outline:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-projects .ep-input:focus{border-color:var(--t-bd2)}
.eywal-projects .ep-input::placeholder{color:var(--ey-tx3,#86847c)}
.eywal-projects .ep-hint{font-size:12.5px;color:var(--ey-tx3,#86847c);margin-top:10px;display:flex;align-items:flex-start;gap:7px}
.eywal-projects .ep-hint i{color:var(--ey-acc,#e1825d);font-style:normal;margin-top:2px}
.eywal-projects .btn-ghost{background:rgba(255,255,255,.02);border:1px solid var(--ey-bd2,rgba(255,255,255,.14));color:var(--ey-tx2,#bcbab1);border-radius:12px;padding:8px 16px;font-weight:500}
.eywal-projects .btn-ghost:hover{background:rgba(255,255,255,.06);color:var(--ey-tx,#f5f4ee)}
.eywal-projects .btn-acc{background:var(--ey-acc,#e1825d);border:1px solid var(--ey-acc,#e1825d);color:#fff;border-radius:12px;padding:8px 16px;font-weight:500;display:inline-flex;align-items:center;gap:7px}
.eywal-projects .btn-acc:hover{background:var(--ey-acc2,#101010);color:#fff}
.eywal-projects .btn-acc i{font-style:normal}
.eywal-projects .ep-create-modal{background:var(--ey-bg-elev);border:1px solid var(--ey-bd2);border-radius:12px}
.eywal-projects .ep-create-header{border-bottom:1px solid var(--ey-bd2);padding:14px 16px}
.eywal-projects .ep-create-header .modal-title{margin:0;font-weight:720;display:inline-flex;align-items:center;gap:9px;font-size:17px}
.eywal-projects .ep-create-body{padding:16px}
.eywal-projects .ep-create-body .ep-hint + .ep-hint{margin-top:10px}
.eywal-projects .ep-create-footer{border-top:1px solid var(--ey-bd2);padding:12px 16px;gap:8px}
.eywal-projects .ep-create-footer .btn{min-height:40px}
.eywal-projects{max-width:1100px;padding:8px 6px 34px}
.eywal-projects .ep-head{margin-bottom:14px}
.eywal-projects .pgrid{grid-template-columns:repeat(2, minmax(0,1fr));gap:10px}
.eywal-projects .pcard{padding:13px 14px;border-radius:12px;background:rgba(255,255,255,.018);border-color:var(--t-bd);box-shadow:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-projects .pcard:hover{background:rgba(255,255,255,.04);border-color:var(--t-bd2);box-shadow:none}
.eywal-projects .pcard .pi{width:38px;height:38px;border-radius:12px;margin-bottom:10px}
.eywal-projects .ep-new{border-radius:12px;padding:10px 14px}
.eywal-projects .ep-badge{border-radius:999px;padding:2px 8px}
.page-h{font-family:var(--ey-serif);font-weight:400;font-size:26px;margin-top:4px;color:var(--ey-tx)}
.page-s{color:var(--ey-tx2);font-size:13.5px;margin:8px 0 22px}
.pd-btn{padding:9px 14px;border-radius:12px;font-size:13px;font-weight:500;border:1px solid var(--ey-bd2);color:var(--ey-tx2);background:rgba(255,255,255,.02);transition:color .15s,background-color .15s,border-color .15s,opacity .15s;white-space:nowrap}
.pd-btn:hover{background:var(--ey-hover);color:var(--ey-tx)}
.pd-btn.primary{background:var(--ey-acc);border-color:var(--ey-acc);color:#fff}
.pd-btn.primary:hover{background:var(--ey-acc2)}
.pd-btn.danger{color:var(--t-danger);border-color:var(--t-danger)}
.pd-btn.danger:hover{background:var(--t-danger-soft);color:var(--t-danger)}
.pd-app{border:1px solid var(--ey-bd);border-radius:12px;background:var(--ey-bg-elev);padding:15px 16px;margin-bottom:12px;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.pd-app:hover{border-color:var(--ey-bd2)}
.pd-ru{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--ey-bd)}
.pd-ru .pd-ru-uri{flex:1;min-width:160px;font-size:12.5px;color:var(--ey-tx);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.pd-badge{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600;letter-spacing:.02em}
.pd-badge.ok{background:rgba(76,175,116,.16);color:#7ad6a4}
.pd-badge.pend{background:rgba(255,255,255,.12);color:var(--ey-tx3)}
.pd-badge.off{background:var(--t-elev);color:var(--ey-tx3)}
.pd-badge.none{background:rgba(160,160,160,.10);color:var(--ey-tx3)}
.pd-hero-main{min-width:0;flex:1}
.pd-head-sub-tight{margin:0 0 10px}
.pd-head-sub-offset{margin-top:14px}
.pd-modal-head{display:flex;align-items:center;gap:11px}
.pd-modal-head-wrap{gap:12px}
.pd-modal-hint{margin-top:2px}
.pd-app-name-inline{font-size:14px;color:var(--ey-tx2)}
.pd-app-add-modal,.pd-redirect-add-modal{background:var(--ey-bg-elev);border:1px solid var(--ey-bd2);border-radius:12px}
.pd-app-add-modal .pd-modal-hint,.pd-redirect-add-modal .pd-modal-hint{color:var(--ey-tx3);font-size:11.8px}
.pd-app-add-modal .em-label,.pd-redirect-add-modal .em-label{margin-bottom:7px}
.pd-app-add-body,.pd-redirect-add-body{padding-top:10px}
.pd-app-add-footer,.pd-redirect-add-footer{border-top:1px solid var(--ey-bd2);padding:12px 16px}
.pd-back{display:inline-flex;align-items:center;gap:7px;color:var(--ey-tx2);font-size:13px;margin-bottom:10px;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.pd-back:hover{color:var(--ey-tx)}
.pd-back i{font-style:normal}
.app .hidden{display:none!important}
@media(max-width:991.98px){
  .app{height:100dvh}
  .app .side{position:fixed;inset:0 auto 0 0;width:min(86vw,300px);flex-basis:auto;height:100dvh;z-index:1051;transform:translateX(-100%);transition:color .15s,background-color .15s,border-color .15s,opacity .15s;background:var(--ey-bg-side)}
  .app .side.show{transform:translateX(0)}
  .app.collapsed .side{width:min(86vw,300px);flex-basis:auto}
  .side-overlay{display:block;position:fixed;inset:0;background:var(--t-elev);z-index:1050;opacity:0;pointer-events:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
  .side-overlay.show{opacity:1;pointer-events:auto}
  .mobile-side-btn{display:grid;place-items:center;position:fixed;left:12px;top:8px;width:44px;height:44px;border-radius:12px;background:var(--ey-bg-elev);border:1px solid var(--ey-bd2);color:var(--ey-tx);z-index:1040}
  .mobile-side-btn:hover{background:var(--ey-bg-elev2)}
  .topbar{padding-left:64px}
  .topbar .lock{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .app .main{height:100dvh;width:100%}
  .app.collapsed .logo-text,.app.collapsed .tab span,.app.collapsed .side .item .t{display:inline!important}
  .app.collapsed .side-list{display:block}
  .app.collapsed .tabs{flex-direction:row;width:auto;margin:0 10px 8px}
  .app.collapsed .tab{width:auto;flex:1;padding:0 10px}
}
@media(max-width:720px){
  .composer{padding:11px 11px 9px;border-radius:12px;min-height:62px}
  .composer textarea{font-size:16px;line-height:1.45;min-height:30px;padding:4px 5px}
  .app .main .content{padding:12px 6px 16px}
  .app .col{padding:22px 14px 28px}
  .pgrid{grid-template-columns:1fr}
  .eywal-projects{padding:10px 8px 24px;max-width:none}
  .eywal-projects .ep-head{align-items:stretch;gap:10px}
  .eywal-projects .pgrid{grid-template-columns:1fr;gap:8px}
  .eywal-projects .ep-new{width:100%;justify-content:center;text-align:center}
  .eywal-projects .ep-h{font-size:24px;margin-top:0}
  .eywal-projects .ep-s{font-size:13px;margin-top:6px}
  .eywal-projects .pcard{padding:12px;border-radius:12px}
  .eywal-projects .pcard .pi{width:34px;height:34px;border-radius:12px;margin-bottom:9px}
  .eywal-projects .pcard .meta{gap:8px;flex-wrap:wrap}
  .eywal-modal .modal-body,.eywal-modal .modal-header,.eywal-modal .modal-footer{padding-left:12px;padding-right:12px}
  .eywal-projects .ep-create-footer{gap:8px}
  .eywal-projects .ep-create-footer .btn{width:100%;justify-content:center}
  #view-chat.ey-home-empty{min-height:calc(100dvh - 52px);padding-bottom:8vh}
  .greet{gap:10px}
  .greet h1{font-size:25px}
  .msg{gap:10px}
  .msg .av{width:26px;height:26px;flex-basis:26px}
  .msg .body,.msg.u .body{max-width:100%}
  .msg-tools{opacity:1}
  .attach-chip{max-width:210px}
  .attach-name{max-width:110px}
  .model{max-width:132px;height:40px;min-width:72px;padding:0 12px}
  .model i{font-size:15px}
  .cbtn,.send,.stop{width:44px;height:44px;min-width:44px;min-height:44px}
  .send,.stop{border-radius:12px}
  .msg-tools button{width:34px;height:34px}
  #view-chat{padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .composer--spaced{bottom:env(safe-area-inset-bottom)}
  .msgs{padding-bottom:22px}
  .edit-box{min-width:min(100%,72vw)}
  .eywal-pd{padding:8px 4px 24px}
  .pd-hero{align-items:flex-start;flex-direction:column;gap:14px}
  .pd-hero-main{width:100%;min-width:0}
  .pd-card{margin-bottom:12px}
  .pd-card-head,.pd-card-body{padding:14px}
  .pd-card-head{gap:10px}
  .pd-tabs{overflow-x:auto;scrollbar-width:thin;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .pd-tab{flex:0 0 auto}
  .pd-app,.pd-ru,.pd-redirect-group{margin-left:-2px;margin-right:-2px}
  .pd-app-head,.pd-ru{padding:12px;flex-wrap:wrap;align-items:flex-start;gap:10px}
  .pd-app-actions,.pd-ru-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .pd-btn.sm{min-height:36px}
  .pd-ru-info{width:100%}
  .pd-ru-uri{max-width:100%;white-space:normal;word-break:break-word}
  .pd-app-add-modal,.pd-redirect-add-modal{border-radius:12px}
  .pd-app-add-body,.pd-redirect-add-body{padding:12px}
  .pd-app-add-footer,.pd-redirect-add-footer{flex-direction:column;align-items:stretch;gap:8px;padding:12px}
  .pd-app-add-footer .btn,.pd-redirect-add-footer .btn{width:100%;justify-content:center}
  .pd-project-tabs{margin:12px 0 12px}
  .pd-project-tabs .pd-tab{min-height:40px}
}
@media(max-width:430px){
  .eywal-projects .ep-head{gap:10px}
  .eywal-projects .ep-h{font-size:22px}
  .eywal-projects .ep-s{font-size:12.9px}
  .eywal-projects .ep-head{gap:10px}
  .eywal-projects .pgrid{gap:9px}
  .eywal-projects .pcard{padding:11px 12px}
  .eywal-projects .pcard .pi{width:32px;height:32px}
  .eywal-projects .pcard h3{font-size:15px}
  .composer .cbar{gap:5px}
  .composer{padding:10px 10px 9px}
  .cbtn,.send,.stop{width:46px;height:46px}
  .model{max-width:42px;min-width:42px;height:44px;padding:0 10px}
  .model i{margin:0}
  .model{font-size:0}
  .model i{font-size:14px}
  .eywal-pd{padding:8px 2px 20px}
  .pd-card-body{padding:12px}
  .pd-name-row .pd-icon-btn{width:32px;height:32px}
  .pd-project-tabs{gap:6px}
  .pd-project-tabs .pd-tab{padding-inline:9px}
  .pd-project-tabs .pd-tab span,.pd-tab span{white-space:normal;line-height:1.25}
}
.app .main .content{margin-left:0!important;min-height:0;height:auto;padding:24px;overflow-y:auto;width:100%}
.app.collapsed .main .content{margin-left:0!important}
@media (max-width:991.98px){
  .app .main .content{margin-left:0!important;margin-top:0!important}
  .app .main .content{padding:12px 6px 16px}
}
@media (max-width:430px){
  .app .main .content{padding:12px 4px 14px}
}
body.page-admin{background:var(--ey-bg);color:var(--ey-tx)}
.page-admin .main{background:var(--ey-bg);padding:0;overflow:auto}
.page-admin .admin-wrap{width:100%;min-height:100%;display:flex;align-items:flex-start;justify-content:center;padding:14px;box-sizing:border-box}
.page-admin .admin-shell{width:min(1180px,100%);display:flex;flex-direction:column;gap:10px}
.page-admin .admin-title{font-size:1.02rem;font-weight:650;color:var(--ey-tx);margin:0;letter-spacing:.002em}
.page-admin .admin-sub{color:var(--ey-tx2);font-size:.84rem;line-height:1.4}
.page-admin .admin-top,.page-admin .admin-card,.page-admin .provider-card,.page-admin .card,.page-admin .admin-login-card{border:1px solid var(--ey-bd);background:var(--ey-bg-elev);color:var(--ey-tx)}
.page-admin .admin-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px}
.page-admin .admin-top .admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.page-admin .admin-card{border-radius:12px;overflow:hidden}
.page-admin .card{border-radius:12px;box-shadow:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.page-admin .card:hover{border-color:var(--ey-tx2)}
.page-admin .form-text{color:var(--ey-tx3)!important}
.page-admin .admin-card-body{padding:12px}
.page-admin .ai-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.page-admin .ai-config-save{min-width:min(420px,100%)}
.page-admin .ai-default-row{display:flex;align-items:center;gap:8px}
.page-admin .ai-default-row .form-select{min-width:220px}
.page-admin .ai-config-summary{display:grid;grid-template-columns:repeat(3,minmax(110px,160px)) minmax(220px,1fr);gap:8px;align-items:stretch}
.page-admin .ai-summary-item,.page-admin .ai-summary-note{border:1px solid var(--t-bd);border-radius:12px;background:rgba(255,255,255,.025);padding:9px 11px}
.page-admin .ai-summary-item span{display:block;color:var(--ey-tx3);font-size:.72rem;line-height:1.2}
.page-admin .ai-summary-item strong{display:block;color:var(--ey-tx);font-size:1.12rem;line-height:1.1;margin-top:4px}
.page-admin .ai-summary-note{color:var(--ey-tx2);font-size:.8rem;line-height:1.35;display:flex;align-items:center}
.page-admin .admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.page-admin .provider-card{border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.page-admin .provider-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:rgba(255,255,255,.10)}
.page-admin .provider-card.is-ready::before{background:#55d08f}
.page-admin .provider-card.is-keyed::before{background:#d0b255}
.page-admin .provider-card.is-missing::before{background:var(--t-danger)}
.page-admin .provider-card:hover{border-color:var(--ey-bd2);background:rgba(255,255,255,.026)}
.page-admin .provider-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.page-admin .provider-name{font-weight:650;color:var(--ey-tx);font-size:.95rem;display:flex;align-items:center;gap:8px}
.page-admin .provider-name i{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.06);color:var(--ey-tx2);border:1px solid var(--t-bd);font-size:12px}
.page-admin .provider-meta-line{margin-top:5px;color:var(--ey-tx3);font-size:.73rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.page-admin .provider-meta-line span{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-admin .provider-meta-line span + span::before{content:"";display:inline-block;width:4px;height:4px;margin:0 8px 1px 0;border-radius:50%;background:var(--t-elev)}
.page-admin .provider-status-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.page-admin .provider-status{border:1px solid var(--t-bd);border-radius:999px;padding:3px 8px;color:var(--ey-tx2);background:rgba(255,255,255,.04);font-size:.72rem;white-space:nowrap}
.page-admin .provider-card.is-ready .provider-status{color:#9be7bd;border-color:rgba(85,208,143,.35);background:rgba(85,208,143,.09)}
.page-admin .provider-card.is-keyed .provider-status{color:#e3cf87;border-color:rgba(208,178,85,.35);background:rgba(208,178,85,.08)}
.page-admin .provider-card.is-missing .provider-status{color:var(--t-danger);border-color:var(--t-danger);background:var(--t-danger-soft)}
.page-admin .provider-card .form-check{margin-top:2px;margin-bottom:0}
.page-admin .provider-card .form-check-label{color:var(--ey-tx3);font-size:.75rem}
.page-admin .provider-core{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.page-admin .provider-advanced{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding-top:8px;border-top:1px solid var(--t-bd)}
.page-admin .provider-advanced .form-label{font-size:.7rem;color:var(--ey-tx3);margin-bottom:3px}
.page-admin .provider-advanced .form-control{min-height:34px;padding:5px 8px;font-size:.8rem}
.page-admin .admin-actions .btn{border-radius:8px;padding:6px 9px;min-height:36px;line-height:1.15;white-space:nowrap;font-size:.8rem;display:inline-flex;align-items:center;gap:6px;border-color:var(--t-bd2)!important;color:var(--ey-tx2)!important;background:transparent!important}
.page-admin .btn:hover,.page-admin .admin-actions .btn:hover{background:rgba(255,255,255,.10)!important;color:var(--ey-tx)!important;border-color:var(--t-bd2)!important}
.page-admin .btn-primary,.page-admin .btn-outline-info,.page-admin .btn-outline-secondary,.page-admin .btn-outline-light{background:transparent!important;color:var(--ey-tx2)!important;border-color:var(--t-bd2)!important}
.page-admin .field-hint{margin-top:3px;color:var(--ey-tx3);font-size:.74rem;line-height:1.35}
.page-admin .test-result{border:1px solid var(--ey-bd);border-radius:12px;padding:8px 10px;font-size:.8rem;color:var(--ey-tx2);background:rgba(255,255,255,.04);line-height:1.35}
.page-admin .test-result.is-ok{border-color:rgba(85,208,143,.30);background:rgba(85,208,143,.08);color:#bdeecf}
.page-admin .test-result.is-bad{border-color:var(--t-danger);background:var(--t-danger-soft);color:var(--t-danger)}
.page-admin .test-result.is-pending{border-color:rgba(208,178,85,.32);background:rgba(208,178,85,.08);color:#e6d79e}
.page-admin .admin-security-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.page-admin .admin-security-badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border:1px solid var(--t-bd2);border-radius:999px;font-size:.72rem;color:var(--ey-tx2);background:rgba(255,255,255,.05)}
.page-admin .admin-security-badge.is-good{color:#bdeecf;border-color:rgba(85,208,143,.30);background:rgba(85,208,143,.08)}
.page-admin .admin-security-badge.is-warn{color:#e6d79e;border-color:rgba(208,178,85,.32);background:rgba(208,178,85,.08)}
.page-admin .admin-password-form{display:grid;grid-template-columns:repeat(3,minmax(132px,1fr)) auto;gap:6px;min-width:min(680px,100%)}
.page-admin .admin-password-form .btn{white-space:nowrap}
.page-admin .key-actions{display:flex;gap:6px;flex-wrap:wrap}
.page-admin .key-actions .btn,.page-admin .btn-primary,.page-admin .btn-outline-info,.page-admin .btn-outline-secondary,.page-admin .btn-outline-light{display:inline-flex;align-items:center;gap:6px}
.page-admin .admin-map-frame{width:100%;height:calc(100vh - 214px);height:calc(100dvh - 214px);min-height:520px;border:1px solid var(--ey-bd);background:var(--ey-bg-elev)}
.page-admin .admin-login-wrap{width:min(400px,100%);margin:6vh auto 0}
.page-admin .admin-login-card .admin-card-body{padding:14px}
body.page-admin .main{display:block}
@media (max-width: 840px){
  .page-admin .admin-grid{grid-template-columns:1fr}
  .page-admin .ai-config-head{flex-direction:column}
  .page-admin .ai-config-save{width:100%;min-width:0}
  .page-admin .ai-default-row{align-items:stretch;flex-direction:column}
  .page-admin .ai-default-row .form-select{min-width:0;width:100%}
  .page-admin .ai-config-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .page-admin .ai-summary-note{grid-column:1 / -1}
  .page-admin .provider-core{grid-template-columns:1fr}
  .page-admin .provider-advanced{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-admin .provider-head{gap:8px}
  .page-admin .provider-status-wrap{align-items:flex-end}
  .page-admin .admin-password-form{grid-template-columns:1fr}
  .page-admin .admin-wrap{padding:14px}
  .page-admin .admin-top{align-items:flex-start;flex-direction:column}
  .page-admin .admin-top .admin-actions{justify-content:flex-start}
  .page-admin .admin-map-frame{height:calc(100vh - 250px);height:calc(100dvh - 250px);min-height:520px}
}
.page-admin .admin-side-nav .item{margin:0 8px;border-radius:12px}
.page-admin .admin-side .side-foot{padding-top:6px;margin-top:auto;border-top:0}
.page-admin .admin-side .logo-text,.page-admin .admin-side .logo-brand{display:inline!important;letter-spacing:.01em}
.page-admin .logo-mark.is-fallback .logo-fallback{display:block}
.page-admin .tabs,.page-admin .side-list{display:none!important}
.page-admin .admin-side{width:260px}
.page-admin .admin-side .side-head{border-bottom:1px solid var(--ey-bd)}
.page-admin .admin-collapse-toggle{width:32px;height:32px;border:1px solid var(--ey-line, rgba(255,255,255,.08));border-radius:12px;background:rgba(255,255,255,.035);color:var(--ey-tx2)}
.page-admin .admin-collapse-toggle:hover{background:rgba(255,255,255,.08);color:var(--ey-tx)}
.page-admin .admin-collapse-toggle i{font-size:13px;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.page-admin.app.collapsed .admin-side{width:72px;flex-basis:72px}
.page-admin.app.collapsed .admin-side .side-head{flex-direction:row;justify-content:space-between;align-items:center;gap:0;padding-inline:8px}
.page-admin.app.collapsed .admin-side .logo{justify-content:center;flex:0 0 auto}
.page-admin.app.collapsed .admin-side .mark.logo-mark{width:24px;height:24px;flex:0 0 24px}
.page-admin.app.collapsed .admin-side .logo-mark img{width:18px;height:18px;max-width:18px;max-height:18px}
.page-admin.app.collapsed .admin-side .logo-text,.page-admin.app.collapsed .admin-side-group span,.page-admin.app.collapsed .admin-side .item .t,.page-admin.app.collapsed .admin-side .fu-meta,.page-admin.app.collapsed .admin-side .fu-chev{display:none!important}
.page-admin.app.collapsed .admin-collapse-toggle i{transform:rotate(180deg)}
.page-admin.app.collapsed .admin-side-nav{padding-inline:6px;overflow-x:hidden}
.page-admin.app.collapsed .admin-side-group{justify-content:center;padding:8px 0 5px;pointer-events:none;cursor:default}
.page-admin.app.collapsed .admin-side-group::after{content:"";width:22px;height:1px;background:var(--ey-line, rgba(255,255,255,.12));opacity:.9}
.page-admin.app.collapsed .admin-side-grp[open] > .admin-side-group::after{transform:none}
.page-admin.app.collapsed .admin-side .item{justify-content:center;margin-inline:0;padding:10px 0}
.page-admin.app.collapsed .admin-side .item i{flex:0 0 36px;width:36px;height:34px;display:grid;place-items:center;border-radius:12px;font-size:16px}
.page-admin.app.collapsed .admin-side .item.on i{background:var(--t-danger-soft)}
.page-admin.app.collapsed .admin-side .side-foot{padding-inline:8px}
.page-admin.app.collapsed .admin-side .foot-user{justify-content:center;padding-inline:0}
.page-admin .admin-side-nav{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 8px;display:flex;flex-direction:column;gap:2px;margin-top:2px}
.page-admin .admin-side .item{border-radius:8px;padding:9px 10px}
.page-admin .admin-side .item i{color:var(--ey-tx2);font-size:15px}
.page-admin .admin-side .item.on i{color:var(--ey-acc)}
.page-admin .admin-side-grp{margin:0}
.page-admin .admin-side-grp + .admin-side-grp{margin-top:6px;padding-top:4px;border-top:1px solid var(--ey-line, rgba(255,255,255,.07))}
.page-admin .admin-side-group{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px 5px;margin:0;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ey-tx2)}
.page-admin .admin-side-group::-webkit-details-marker{display:none}
.page-admin .admin-side-group::after{content:"\25B8";font-size:10px;opacity:.55;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.page-admin .admin-side-grp[open] > .admin-side-group::after{transform:rotate(90deg)}
.page-admin .admin-side-group:hover{color:var(--ey-tx1, #fff)}
.page-admin .admin-side-domain{display:flex;align-items:center;gap:8px;padding:11px 14px 4px;margin-top:8px;font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ey-acc, #e1825d);opacity:.8}
.page-admin .admin-side-domain:first-child{margin-top:0}
.page-admin .admin-side-grp + .admin-side-domain{border-top:1px solid var(--ey-line, rgba(255,255,255,.10));padding-top:11px}
.page-admin.app.collapsed .admin-side-domain{justify-content:center;padding:8px 0 5px}
.page-admin.app.collapsed .admin-side-domain span{display:none!important}
.page-admin.app.collapsed .admin-side-domain::after{content:"";width:22px;height:1px;background:var(--ey-acc, rgba(225,130,93,.5));opacity:.6}
@media (prefers-reduced-motion: reduce){
  .app *,.app *::before,.app *::after{scroll-behavior:auto!important}
}
@media (max-width: 991.98px){
  .eywal-projects .ep-input{font-size:16px}
  .msg-tools button{width:40px;height:40px}
  .attach-chip button{width:36px;height:36px;flex:0 0 36px}
}
.page-admin .admin-shell{container-type:inline-size}
.page-admin .admin-card,.page-admin .provider-card{content-visibility:auto;contain-intrinsic-size:auto 220px}
.page-admin .admin-card-body{min-width:0}
.page-admin .admin-card .table,.page-admin .admin-card table{margin-bottom:0}
.page-admin .admin-card:has(table){overflow-x:auto;-webkit-overflow-scrolling:touch}
.page-admin .admin-card code,.page-admin .admin-card pre{overflow-wrap:anywhere}
.page-admin .admin-card .border.rounded{border-color:var(--ey-bd)!important;background:rgba(255,255,255,.022)}
.page-admin .admin-card .form-control,.page-admin .admin-card .form-select{background:var(--t-elev);border-color:var(--t-bd2);color:var(--ey-tx)}
.page-admin .admin-card .form-control:focus,.page-admin .admin-card .form-select:focus{border-color:var(--t-danger)}
@media (max-width: 991.98px){
  .page-admin .main{min-width:0}
  .page-admin .admin-side{width:min(300px,86vw)}
  .page-admin .admin-wrap{padding:12px max(12px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}
  .page-admin .admin-shell{gap:9px}
  .page-admin .admin-top{position:sticky;top:8px;z-index:8;background:var(--t-card)}
  .page-admin .admin-top .admin-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .page-admin .admin-actions .btn,.page-admin .key-actions .btn,.page-admin .admin-card .btn{min-height:42px;justify-content:center}
  .page-admin .admin-card input,.page-admin .admin-card select,.page-admin .admin-card textarea{font-size:16px}
  .page-admin .provider-meta-line span{max-width:min(72vw,360px)}
  .page-admin .admin-map-frame{min-height:420px}
}
@media (max-width: 640px){
  .page-admin .admin-wrap{padding-top:10px}
  .page-admin .admin-title{font-size:1rem}
  .page-admin .admin-sub{font-size:.82rem}
  .page-admin .ai-config-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-admin .provider-head,.page-admin .provider-status-wrap{align-items:flex-start}
  .page-admin .provider-head{flex-direction:column}
  .page-admin .provider-status-wrap{width:100%;flex-direction:row;flex-wrap:wrap}
  .page-admin .provider-advanced{grid-template-columns:1fr}
  .page-admin .admin-card-body{padding:11px}
  .page-admin .admin-card .form-control[style*="max-width"],.page-admin .admin-card .form-select[style*="max-width"]{max-width:none!important}
  .page-admin .admin-card .d-flex.flex-wrap.gap-2{row-gap:8px!important}
  .page-admin .admin-card .d-flex.flex-wrap.gap-2 > .btn{min-height:40px}
}
@media (max-width: 430px){
  .page-admin .admin-top .admin-actions,.page-admin .ai-config-summary{grid-template-columns:1fr}
  .page-admin .admin-card,.page-admin .provider-card,.page-admin .admin-top{border-radius:12px}
  .page-admin .provider-card{padding:11px}
  .page-admin .admin-card .d-flex.gap-2{gap:7px!important}
  .page-admin .admin-card .d-flex.align-items-center.justify-content-between{align-items:stretch!important;flex-direction:column}
  .page-admin .admin-card .d-flex.align-items-center.justify-content-between > .d-flex{width:100%;align-items:stretch!important;flex-direction:column}
  .page-admin .admin-card .d-flex.align-items-center.justify-content-between .btn{width:100%}
  .page-admin .admin-map-frame{height:calc(100dvh - 180px);min-height:360px}
}
[data-ey-chat-surface="home"] .model{display:inline-flex;align-items:center;gap:7px;max-width:none;cursor:pointer}
[data-ey-chat-surface="home"] .model .model-label{overflow:visible;text-overflow:clip}
[data-ey-chat-surface="home"] .model[aria-expanded="true"]{background:var(--ey-hover);color:#fff}
.mode-pop{overflow:visible;max-height:none}
@media (max-width: 991.98px){
  .home-chips{gap:10px}
  .home-chip{min-height:44px;height:auto;padding:0 14px;border-radius:12px}
}
@media (hover: none){
  .side .chat-item .chat-acts{display:flex;background:transparent}
  .side .chat-item.on .chat-acts{background:transparent}
  .side .chat-act{width:32px;height:32px;border-radius:8px}
}
@media (max-width: 991.98px){
  .side .side-list,.scroll{overscroll-behavior:contain}
}
:root[data-bs-theme="light"],:root[data-bs-theme="light"] .eywal-projects,:root[data-bs-theme="light"] .eywal-pd{--ey-bg:#ffffff;--ey-bg-side:#f7f7f5;--ey-bg-elev:#f1f0ec;--ey-bg-elev2:#e7e6e0;--ey-hover:rgba(0,0,0,.05);--ey-active:rgba(0,0,0,.08);--ey-bd:rgba(0,0,0,.12);--ey-bd2:rgba(0,0,0,.18);--ey-tx:#1d1f26;--ey-tx2:#41444c;--ey-tx3:#5f626a;--ey-focus:rgba(32,34,42,.55);--pd-muted:#5f626a}
:root[data-bs-theme="light"] .page-project-detail [data-ey-chat-surface],:root[data-bs-theme="light"] [data-ey-chat-surface]{--ey-chat-composer-bg:#ffffff;--ey-chat-composer-border:rgba(0,0,0,.16);--ey-chat-user-bg:#f1f0ec;--ey-chat-user-text:#1d1f26}
:root[data-bs-theme="light"] .composer--spaced::before,:root[data-bs-theme="light"] .page-project-detail [data-ey-chat-surface="project"] .composer::before{background:transparent}
:root[data-bs-theme="light"] .composer{background:var(--t-card);border-color:var(--t-bd2)}
:root[data-bs-theme="light"] .msg.u .bubble{border-color:var(--t-bd)!important}
:root[data-bs-theme="light"] .eywal-pd input:not([type=checkbox]):not([type=radio]):not([type=range]),:root[data-bs-theme="light"] .eywal-pd select,:root[data-bs-theme="light"] .eywal-pd textarea,:root[data-bs-theme="light"] .eywal-projects input,:root[data-bs-theme="light"] .eywal-projects select,:root[data-bs-theme="light"] .eywal-projects textarea{background:var(--t-card)!important;color:var(--ey-tx)!important;border-color:var(--t-bd2)!important}
:root[data-bs-theme="light"] .eywal-pd input::placeholder,:root[data-bs-theme="light"] .eywal-pd textarea::placeholder{color:var(--t-tx2)}
:root[data-bs-theme="light"] .eywal-pd .pd-card{background:var(--t-card);border-color:var(--t-bd)}
:root[data-bs-theme="light"] .eywal-pd .pd-head-title,:root[data-bs-theme="light"] .eywal-pd .pd-card-head,:root[data-bs-theme="light"] .eywal-pd h1,:root[data-bs-theme="light"] .eywal-pd h2,:root[data-bs-theme="light"] .eywal-pd h3,:root[data-bs-theme="light"] .eywal-pd h4,:root[data-bs-theme="light"] .eywal-pd label{color:var(--ey-tx)!important}
:root[data-bs-theme="light"] .eywal-pd small,:root[data-bs-theme="light"] .eywal-pd time,:root[data-bs-theme="light"] .eywal-pd .text-muted{color:var(--ey-tx3)!important}
:root[data-bs-theme="light"] .eywal-pd [class*="chip"],:root[data-bs-theme="light"] .eywal-pd [class*="pill"]{background:var(--t-elev)!important;color:var(--ey-tx2)!important;border-color:var(--t-bd)!important}
:root[data-bs-theme="light"] .page-project-detail [data-ey-chat-surface="project"] .project-chat-empty,:root[data-bs-theme="light"] .page-project-detail [data-ey-chat-surface="project"] .chat-empty-chips span{background:var(--t-card)}
.foot-menu{min-width:248px;right:auto;white-space:nowrap}
.foot-menu a span,.foot-menu button span{white-space:nowrap}
/* ==== admin-refresh.css ==== */
.page-admin{--admin-sp-1:4px;--admin-sp-2:8px;--admin-sp-3:12px;--admin-sp-4:16px;--admin-sp-5:24px;--admin-radius:12px;--admin-radius-ctl:9px;--admin-elev-1:0 1px 2px rgba(0,0,0,.18), 0 6px 18px rgba(0,0,0,.14);--admin-elev-2:0 14px 40px rgba(0,0,0,.30);--admin-ok:#55d08f;--admin-ok-soft:rgba(85,208,143,.14);--admin-warn:#d0b255;--admin-warn-soft:rgba(208,178,85,.14);--admin-danger:#d06a55;--admin-danger-soft:rgba(208,106,85,.14);--admin-info:#8fb4ff;--admin-info-soft:rgba(143,180,255,.14)}
.page-admin .admin-shell{gap:var(--admin-sp-3)}
.page-admin .admin-title{font-size:1.06rem;letter-spacing:.003em}
.page-admin .admin-sub{line-height:1.5}
.page-admin .admin-top{padding:var(--admin-sp-3) var(--admin-sp-4);border-radius:var(--admin-radius)}
.page-admin .admin-top .admin-actions{gap:var(--admin-sp-2)}
.page-admin .admin-card,.page-admin .admin-login-card{border-radius:var(--admin-radius)}
.page-admin .admin-card-body{padding:var(--admin-sp-4)}
.page-admin .admin-card + .admin-card{margin-top:0}
.page-admin .btn{border-radius:var(--admin-radius-ctl);transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.page-admin .btn:focus-visible{outline:2px solid var(--ey-focus);outline-offset:2px;box-shadow:none}
.page-admin .btn-sm{padding:.28rem .6rem}
.page-admin .table{--bs-table-bg:transparent;--bs-table-color:var(--ey-tx);margin-bottom:0}
.page-admin .table > thead > tr > th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;font-weight:650;color:var(--ey-tx3);border-bottom:1px solid var(--ey-bd2);background:transparent;position:sticky;top:0;z-index:1}
.page-admin .table > tbody > tr > td{border-bottom:1px solid var(--ey-bd);vertical-align:middle}
.page-admin .table > tbody > tr:nth-child(2n) > td{background:rgba(255,255,255,.022)}
:root[data-bs-theme="light"] .page-admin .table > tbody > tr:nth-child(2n) > td{background:rgba(0,0,0,.022)}
.page-admin .table > tbody > tr:hover > td{background:var(--ey-hover)}
.page-admin .table code{color:var(--ey-tx2)}
.page-admin .table-responsive{border:1px solid var(--ey-bd);border-radius:var(--admin-radius-ctl);overflow:auto}
.page-admin .badge{border-radius:999px;font-weight:600;letter-spacing:.01em;padding:.30em .6em}
.page-admin .badge.bg-warning{background:var(--admin-warn-soft)!important;color:var(--admin-warn)!important}
.page-admin .badge.bg-info{background:var(--admin-info-soft)!important;color:var(--admin-info)!important}
.page-admin .badge.bg-secondary{background:var(--ey-active)!important;color:var(--ey-tx2)!important}
.page-admin .alert{border-radius:var(--admin-radius-ctl);border:1px solid var(--ey-bd)}
.page-admin .alert-success{background:var(--admin-ok-soft);border-color:rgba(85,208,143,.34);color:var(--admin-ok)}
.page-admin .alert-warning{background:var(--admin-warn-soft);border-color:rgba(208,178,85,.34);color:var(--admin-warn)}
.page-admin .alert-danger{background:var(--admin-danger-soft);border-color:var(--t-danger);color:var(--admin-danger)}
.page-admin .alert-info{background:var(--admin-info-soft);border-color:var(--t-acc);color:var(--admin-info)}
.page-admin code{background:var(--ey-active);padding:.06em .4em;border-radius:6px;font-size:.86em}
@media (max-width:560px){
  .page-admin .admin-top{flex-direction:column;align-items:stretch;gap:var(--admin-sp-2)}
  .page-admin .admin-top .admin-actions{justify-content:flex-start}
  .page-admin .admin-card-body{padding:var(--admin-sp-3)}
}
.page-admin .ma-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--ey-tx3);padding:8px 16px;cursor:pointer;font-size:14px;font-weight:600}
.page-admin .ma-tab:hover{color:var(--ey-tx2)}
.page-admin .ma-tab.on{color:var(--ey-acc);border-bottom-color:var(--ey-acc)}
.page-admin .ma-panel[hidden]{display:none}
.page-admin .ma-note{margin-bottom:10px}
/* ==== eywal-rich-render.css ==== */
/* ==== eywal-tts.css ==== */
/* ==== eywal-command-palette.css ==== */
/* ==== app/views/sidebar.php ==== */
/* ==== app/views/components/chat-surface.php ==== */
.recipient-wrap{display:inline-flex;align-items:center;gap:4px;padding:0 6px;height:30px;border-radius:8px;cursor:pointer}
.recipient-wrap .fa-at{opacity:.6;font-size:12px}
.recipient-wrap .recipient-select{border:0;background:transparent;color:inherit;font:inherit;font-size:13px;cursor:pointer;outline:none;max-width:140px}
.recipient-wrap .recipient-select option{color:var(--t-tx)}
/* ==== app/views/UI/Project/detail.php ==== */
.eywal-pd{--ey-bg:#262624;--ey-bg-elev:#30302e;--ey-bg-elev2:#34332f;--ey-hover:rgba(255,255,255,.06);--ey-bd:rgba(255,255,255,.09);--ey-bd2:rgba(255,255,255,.14);--ey-tx:#f5f4ee;--ey-tx2:#bcbab1;--ey-tx3:#86847c;--ey-acc:#e1825d;--ey-acc2:#c96b47;--ey-acc-soft:rgba(225,130,93,.16);--ey-focus:rgba(255,238,220,.86);--ey-serif:Georgia,"Iowan Old Style","Times New Roman",serif;color:var(--ey-tx);max-width:860px;margin:0 auto;padding:8px 4px 48px}
:root[data-bs-theme="light"] .eywal-pd{--ey-bg:#ffffff;--ey-bg-elev:#efeeea;--ey-bg-elev2:#e6e5df;--ey-hover:rgba(0,0,0,.055);--ey-bd:rgba(0,0,0,.10);--ey-bd2:rgba(0,0,0,.14);--ey-tx:#20222a;--ey-tx2:#4d5057;--ey-tx3:#6b6e75;--ey-focus:rgba(32,34,42,.55)}
:root[data-bs-theme="light"] .page-project-detail [data-ey-chat-surface="project"] .codebox code{color:var(--t-acc-tx)}
.eywal-pd .pd-back{display:inline-flex;align-items:center;gap:7px;color:var(--ey-tx2);font-size:13px;margin-bottom:14px;text-decoration:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-pd .pd-back:hover{color:var(--ey-tx)}
.eywal-pd .pd-back:focus-visible,.eywal-pd .pd-btn:focus-visible,.eywal-pd .pd-icon-btn:focus-visible,.eywal-pd .pd-icon-sq:focus-visible,.eywal-pd #logoBox:focus-visible{outline:2px solid var(--ey-focus);outline-offset:2px}
.eywal-pd .pd-back i{font-style:normal}
.eywal-pd .pd-card{background:var(--ey-bg-elev);border:1px solid var(--ey-bd);border-radius:12px;margin-bottom:18px;overflow:hidden;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-pd .pd-card:hover{border-color:var(--ey-bd2)}
.eywal-pd .pd-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:18px 20px;border-bottom:1px solid var(--ey-bd)}
.eywal-pd .pd-card-body{padding:18px 20px}
.eywal-pd .pd-head-title{font-weight:600;font-size:15px;color:var(--ey-tx);display:flex;align-items:center;gap:9px}
.eywal-pd .pd-head-title i{width:28px;height:28px;border-radius:12px;display:grid;place-items:center;background:var(--ey-acc-soft);color:var(--ey-acc);border:1px solid var(--t-danger);font-style:normal;font-size:13px}
.eywal-pd .pd-head-sub{font-size:12.5px;color:var(--ey-tx3);margin-top:5px;line-height:1.5}
.eywal-pd .pd-hero{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.eywal-pd .pd-logo-wrap{position:relative;flex:0 0 auto}
.eywal-pd .pd-logo-wrap img{width:64px;height:64px;border-radius:12px;object-fit:cover;border:1px solid var(--ey-bd2);background:var(--ey-bg)}
.eywal-pd #logoBox{position:absolute;right:-6px;bottom:-6px;width:28px;height:28px;border-radius:12px;display:grid;place-items:center;background:var(--ey-bg-elev2);border:1px solid var(--ey-bd2);color:var(--ey-tx2);padding:0}
.eywal-pd #logoBox:hover{background:var(--ey-acc);border-color:var(--ey-acc);color:#fff}
.eywal-pd #logoBox i{font-style:normal;font-size:13px}
.eywal-pd .pd-name-row{display:flex;align-items:center;gap:8px;min-width:0}
.eywal-pd #projectNameText{font-family:var(--ey-serif);font-weight:400;font-size:24px;color:var(--ey-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eywal-pd .pd-icon-btn{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:transparent;border:1px solid transparent;color:var(--ey-tx3);padding:0;flex:0 0 auto}
.eywal-pd .pd-icon-btn:hover{background:var(--ey-hover);color:var(--ey-tx);border-color:var(--ey-bd)}
.eywal-pd .pd-icon-btn i{font-style:normal;font-size:14px}
.eywal-pd .pd-hero-side{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.eywal-pd .pd-time{font-size:12px;color:var(--ey-tx3);display:flex;align-items:center;gap:6px;text-align:right}
.eywal-pd .pd-time i{font-style:normal}
.eywal-pd .pd-card{border:1px solid var(--t-bd);border-radius:12px;background:transparent;overflow:hidden}
.eywal-pd .pd-card + .pd-card{margin-top:16px}
.eywal-pd .pd-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--t-bd);background:rgba(0,0,0,.075)}
.eywal-pd .pd-card-body{padding:17px 18px}
.eywal-pd .pd-head-title{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:720;color:var(--ey-tx)}
.eywal-pd .pd-head-title i{color:var(--ey-acc);font-style:normal}
.eywal-pd .pd-head-sub{margin-top:4px;font-size:12.2px;line-height:1.45;color:var(--ey-tx3)}
.eywal-pd .pd-note,.eywal-pd .pd-warn{border-radius:12px;padding:12px 14px;line-height:1.5}
.eywal-pd .pd-note{background:var(--t-acc-soft);border:1px solid var(--t-acc)}
.eywal-pd .pd-warn{background:var(--t-danger-soft);border:1px solid var(--t-danger)}
.eywal-pd .pd-tabs{margin-top:0;margin-bottom:14px;padding:0 2px}
.eywal-pd .pd-tab{cursor:pointer;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-pd .pd-tab.active{background:transparent;border-radius:12px 12px 0 0}
.eywal-pd .pd-app-head{min-height:58px}
.eywal-pd .pd-app-name{font-weight:720}
.eywal-pd .pd-count,.eywal-pd .pd-badge{border:1px solid var(--t-bd)}
.eywal-pd .pd-ru{gap:14px}
.eywal-pd .pd-ru-uri{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.eywal-modal .modal-content{border-radius:12px;border:1px solid var(--t-bd)}
.eywal-modal .modal-header,.eywal-modal .modal-footer{border-color:var(--t-bd)}
@media(max-width:720px){
  .eywal-pd .pd-card-head{align-items:flex-start;flex-direction:column}
  .eywal-pd .pd-card-head>.pd-btn{width:100%;justify-content:center}
  .eywal-pd .pd-card-body{padding:14px}
  .eywal-pd .pd-tabs{overflow-x:auto;scrollbar-width:thin}
  .eywal-pd .pd-tab{flex:0 0 auto}
}
.eywal-pd{--pd-panel:#2b2b29;--pd-panel-2:#252522;--pd-line:rgba(255,255,255,.095);--pd-line-strong:rgba(255,255,255,.15);--pd-muted:#aaa79e}
.eywal-pd .pd-card{border-color:var(--pd-line);border-radius:12px;background:var(--pd-panel)}
.eywal-pd .pd-card + .pd-card{margin-top:14px}
.eywal-pd .pd-card-head{padding:14px 16px;background:var(--pd-panel-2);border-bottom-color:var(--pd-line);gap:12px}
.eywal-pd .pd-card-body{padding:16px}
.eywal-pd .pd-head-title{font-size:14px;font-weight:760;letter-spacing:.005em}
.eywal-pd .pd-head-sub{font-size:12px;color:var(--pd-muted);max-width:760px}
.eywal-pd .pd-note,.eywal-pd .pd-warn{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px;border-radius:12px;padding:10px 12px;font-size:12.6px}
.eywal-pd .pd-note{background:var(--t-acc-soft);border-color:var(--t-acc);color:var(--ey-tx2)}
.eywal-pd .pd-warn{background:var(--t-danger-soft);border-color:var(--t-danger);color:var(--ey-tx2)}
.eywal-pd .pd-tabs{display:inline-flex;align-items:center;gap:3px;margin:0 0 14px;padding:4px;border:1px solid var(--pd-line);border-radius:12px;background:var(--t-elev)}
.eywal-pd .pd-tab{height:34px;padding:0 12px;border:0;border-radius:12px;color:var(--pd-muted);font-size:12.4px;font-weight:740}
.eywal-pd .pd-tab.active{background:rgba(255,255,255,.085);color:var(--t-tx);border-bottom-color:transparent;box-shadow:none}
.eywal-pd .pd-tab:hover{background:rgba(255,255,255,.055);color:var(--t-tx)}
.eywal-pd .ru-list{display:flex;flex-direction:column;gap:10px}
.eywal-pd .pd-app,.eywal-pd .pd-redirect-group{margin:0;border-radius:12px;border-color:var(--pd-line);background:var(--t-card);box-shadow:none}
.eywal-pd .pd-app:hover{box-shadow:none;border-color:var(--pd-line-strong)}
.eywal-pd .pd-app-head{padding:12px 14px;min-height:54px;gap:12px}
.eywal-pd .pd-app-name{font-size:14px;font-weight:760}
.eywal-pd .pd-app-purpose{font-size:12px;color:var(--pd-muted)}
.eywal-pd .pd-app-actions,.eywal-pd .pd-ru-actions{gap:6px}
.eywal-pd .pd-count{height:30px;display:inline-flex;align-items:center;border-radius:999px;padding:0 9px;background:rgba(255,255,255,.045);font-size:11.5px;color:var(--pd-muted)}
.eywal-pd .pd-ru{padding:12px 14px;background:var(--t-card);border-color:var(--pd-line)}
.eywal-pd .pd-ru-info{min-width:0}
.eywal-pd .pd-ru-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.eywal-pd .pd-badge{height:24px;display:inline-flex;align-items:center;border-radius:999px;padding:0 8px;font-size:11px;font-weight:760}
.eywal-pd .pd-ru-uri{font-size:12.2px;color:var(--t-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(760px,62vw)}
.eywal-pd .pd-uri-app{font-size:11.5px;color:var(--pd-muted)}
.eywal-pd .pd-empty-ru{padding:12px 14px;color:var(--pd-muted);font-size:12.5px;background:rgba(255,255,255,.025)}
.eywal-pd .pd-btn{height:34px;padding:0 12px;border-radius:12px;font-size:12.4px;font-weight:720;background:rgba(255,255,255,.035);border-color:var(--pd-line-strong)}
.eywal-pd .pd-btn:hover{background:rgba(255,255,255,.075)}
.eywal-pd .pd-btn.sm{height:30px;padding:0 10px;font-size:12px}
.eywal-pd .pd-icon-sq,.eywal-pd .pd-icon-btn{border-radius:12px}
.eywal-modal .modal-content{background:var(--t-elev);border-radius:12px}
.eywal-modal .em-input{border-radius:12px}
@media(max-width:720px){
  .eywal-pd .pd-card{border-radius:12px}
  .eywal-pd .pd-card-head{padding:13px}
  .eywal-pd .pd-card-body{padding:13px}
  .eywal-pd .pd-tabs{display:flex;width:100%}
  .eywal-pd .pd-tab{flex:1;justify-content:center}
  .eywal-pd .pd-app-head,.eywal-pd .pd-ru{padding:12px}
  .eywal-pd .pd-ru-uri{max-width:100%;white-space:normal;word-break:break-word}
}
.eywal-pd .pd-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:12px;font-size:13px;font-weight:500;border:1px solid var(--ey-bd2);color:var(--ey-tx2);background:rgba(255,255,255,.02);transition:color .15s,background-color .15s,border-color .15s,opacity .15s;white-space:nowrap}
.eywal-pd .pd-btn:hover{background:var(--ey-hover);color:var(--ey-tx)}
.eywal-pd .pd-btn i{font-style:normal}
.eywal-pd .pd-btn.acc{background:var(--ey-acc);border-color:var(--ey-acc);color:#fff}
.eywal-pd .pd-btn.acc:hover{background:var(--ey-acc2);color:#fff}
.eywal-pd .pd-btn.danger{color:var(--t-danger);border-color:var(--t-danger)}
.eywal-pd .pd-btn.danger:hover{background:var(--t-danger-soft);color:var(--t-danger)}
.eywal-pd .pd-btn.sm{padding:6px 11px;font-size:12.5px}
.eywal-pd .pd-btn.warn{background:var(--t-danger-soft);border-color:var(--t-danger);color:var(--t-tx);font-weight:600}
.eywal-pd .pd-btn.warn:hover{background:var(--t-danger-soft)}
.eywal-pd .pd-icon-sq{width:32px;height:32px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--ey-bd2);color:var(--ey-tx2);background:rgba(255,255,255,.02);padding:0;flex:0 0 auto;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-pd .pd-icon-sq:hover{background:var(--ey-hover);color:var(--ey-tx)}
.eywal-pd .pd-icon-sq.danger{color:var(--t-danger);border-color:var(--t-danger)}
.eywal-pd .pd-icon-sq.danger:hover{background:var(--t-danger-soft);color:var(--t-danger)}
.eywal-pd .pd-icon-sq i{font-style:normal;font-size:13px}
.eywal-pd .pd-note{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--ey-tx3);line-height:1.55;background:rgba(255,255,255,.02);border:1px solid var(--ey-bd);border-radius:12px;padding:11px 13px;margin-bottom:12px}
.eywal-pd .pd-note i{color:var(--ey-acc);font-style:normal;margin-top:2px;flex:0 0 auto}
.eywal-pd .pd-note b{color:var(--ey-tx2)}
.eywal-pd .pd-warn{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--ey-tx2);line-height:1.55;background:rgba(255,255,255,.05);border:1px solid var(--t-bd2);border-radius:12px;padding:13px 14px}
.eywal-pd .pd-warn i{color:var(--ey-acc);font-style:normal;margin-top:2px;flex:0 0 auto}
.eywal-pd .pd-app{border:1px solid var(--ey-bd);border-radius:12px;background:var(--ey-bg);margin-bottom:12px;overflow:hidden;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-pd .pd-app:hover{border-color:var(--ey-bd2)}
.eywal-pd .pd-app:last-child{margin-bottom:0}
.eywal-pd .pd-app-head{display:flex;align-items:center;gap:10px;padding:13px 15px;border-bottom:1px solid var(--ey-bd)}
.eywal-pd .pd-app-meta{flex:1;min-width:0}
.eywal-pd .pd-app-name{font-size:14.5px;font-weight:500;color:var(--ey-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eywal-pd .pd-app-purpose{font-size:12px;color:var(--ey-tx3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eywal-pd .pd-app-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
.eywal-pd .pd-tabs{display:flex;gap:8px;margin:0 0 14px;border-bottom:1px solid var(--ey-bd)}
.eywal-pd .pd-tab{border:0;background:transparent;color:var(--ey-tx3);padding:0 3px 10px;font-size:13px;font-weight:650;letter-spacing:.01em;display:inline-flex;align-items:center;gap:8px;border-bottom:2px solid transparent}
.eywal-pd .pd-tab:hover{color:var(--ey-tx)}
.eywal-pd .pd-tab.active{color:var(--ey-acc);border-bottom-color:var(--ey-acc)}
.eywal-pd .pd-tab-pane:not(.active){display:none}
.eywal-pd .pd-app-main{border-bottom:0}
.eywal-pd .pd-uri-app{font-size:12px;color:var(--ey-tx3);margin-top:4px}
.eywal-pd .pd-redirect-group{border:1px solid var(--ey-bd);border-radius:12px;background:rgba(255,255,255,.018);margin-bottom:12px;overflow:hidden}
.eywal-pd .pd-redirect-group .pd-app-head{background:rgba(255,255,255,.025)}
.eywal-pd .pd-redirect-group .pd-ru,.eywal-pd .pd-redirect-group .pd-empty-ru{border-left:0;border-right:0;border-radius:0;margin:0;border-bottom:1px solid var(--ey-bd)}
.eywal-pd .pd-redirect-group .pd-ru:last-child,.eywal-pd .pd-redirect-group .pd-empty-ru:last-child{border-bottom:0}
[data-page="project-detail"][data-project-tab="chat"] .pd-setting-note{display:none}
[data-page="project-detail"][data-project-tab="history"] .pd-setting-note{display:none}
[data-page="project-detail"][data-project-tab="history"] .project-manage-card{display:none}
[data-page="project-detail"][data-project-tab="chat"] .project-manage-card>.pd-card-head{display:none}
[data-page="project-detail"][data-project-tab="chat"] .project-manage-card{border:0;background:transparent;box-shadow:none}
[data-page="project-detail"][data-project-tab="chat"] .project-manage-card>.pd-card-body{padding:0}
.eywal-pd .pd-project-tabs{margin:16px 0 14px}
.eywal-pd .project-manage-card>.pd-card-body>.pd-tabs{display:none}
.eywal-pd .pd-ai-chat{border:0;border-radius:0;background:transparent;min-height:560px;display:flex;flex-direction:column}
.eywal-pd .pd-ai-chat-head{display:none;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--pd-line);background:var(--t-card)}
.eywal-pd .pd-ai-chat-title{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:780;color:var(--ey-tx)}
.eywal-pd .pd-ai-chat-title i{color:var(--ey-acc)}
.eywal-pd .pd-ai-chat-state{font-size:12px;color:var(--pd-muted)}
.page-project-detail [data-ey-chat-surface]{--ey-chat-composer-bg:#2f2f2f;--ey-chat-composer-border:rgba(255,255,255,.13);--ey-chat-user-bg:#323232;--ey-chat-user-text:#f4f4f4;--ey-chat-border:var(--ey-bd);--ey-chat-muted:var(--ey-tx3);--ey-chat-text:var(--ey-tx)}
.page-project-detail [data-ey-chat-surface="project"]{width:100%;max-width:860px;margin:0 auto}
.page-project-detail [data-ey-chat-surface="project"] .project-chat-msgs{flex:1;min-height:clamp(430px,62vh,760px);max-height:none;overflow:auto;padding:12px 0 24px;display:flex;flex-direction:column;gap:26px}
.page-project-detail [data-ey-chat-surface="project"] .project-chat-empty{margin:auto;text-align:center;color:var(--ey-chat-muted);font-size:13px;max-width:460px;line-height:1.65;border:1px dashed var(--ey-chat-border);border-radius:12px;padding:24px;background:transparent}
.page-project-detail [data-ey-chat-surface="project"] .chat-empty-mark{width:44px;height:44px;margin:0 auto 12px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.07);color:var(--ey-acc);font-size:18px}
.page-project-detail [data-ey-chat-surface="project"] .chat-empty-title{font-size:18px;font-weight:760;color:var(--ey-chat-text);margin-bottom:6px}
.page-project-detail [data-ey-chat-surface="project"] .chat-empty-text{color:var(--ey-chat-muted)}
.page-project-detail [data-ey-chat-surface="project"] .chat-empty-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-top:13px}
.page-project-detail [data-ey-chat-surface="project"] .chat-empty-chips span{font-size:11.5px;color:var(--ey-chat-muted);border:1px solid var(--ey-chat-border);border-radius:999px;padding:4px 9px;background:rgba(255,255,255,.035)}
.page-project-detail [data-ey-chat-surface="project"] .composer{margin-top:14px;position:sticky;bottom:env(safe-area-inset-bottom);z-index:4;flex:0 0 auto;background:var(--ey-chat-composer-bg);border-color:var(--ey-chat-composer-border)}
.page-project-detail [data-ey-chat-surface="project"] .composer::before{content:"";position:absolute;left:-28px;right:-28px;bottom:-40px;height:108px;z-index:-1;background:linear-gradient(to top,var(--ey-bg) 18%,color-mix(in srgb,var(--ey-bg) 92%,transparent) 55%,color-mix(in srgb,var(--ey-bg) 0%,transparent))}
.page-project-detail [data-ey-chat-surface="project"] .send.hidden,.page-project-detail [data-ey-chat-surface="project"] .stop.hidden{display:none!important}
.page-project-detail [data-ey-chat-surface="project"] .msg-tools{opacity:1}
.page-project-detail [data-ey-chat-surface="project"] .msg .body{max-width:min(760px,90%)}
.page-project-detail [data-ey-chat-surface="project"] .msg.u{justify-content:flex-end}
.page-project-detail [data-ey-chat-surface="project"] .msg.u .avatar{display:none}
.page-project-detail [data-ey-chat-surface="project"] .msg.u .body{max-width:min(650px,74%);margin-left:auto}
.page-project-detail [data-ey-chat-surface="project"] .bubble{font-size:15.5px;line-height:1.72;color:var(--ey-chat-text)}
.page-project-detail [data-ey-chat-surface="project"] .msg.u .bubble{background:var(--ey-chat-user-bg);border:1px solid var(--t-bd);border-radius:12px;padding:11px 15px;color:var(--ey-chat-user-text);white-space:pre-wrap;line-height:1.58}
.page-project-detail [data-ey-chat-surface="project"] .msg.a .bubble{background:transparent;border:0;padding-top:1px;color:var(--ey-chat-text)}
.page-project-detail [data-ey-chat-surface="project"] .who{margin-bottom:5px;color:var(--ey-chat-muted);font-size:12px;display:flex;align-items:center;gap:7px}
.page-project-detail [data-ey-chat-surface="project"] .composer textarea{font-size:15px;line-height:1.45;min-height:34px}
.page-project-detail [data-ey-chat-surface="project"] .attach-btn{color:var(--ey-chat-muted)}
.page-project-detail [data-ey-chat-surface="project"] .attach-btn:hover{color:var(--ey-chat-text);background:var(--ey-hover)}
.page-project-detail [data-ey-chat-surface="project"] .codebox{margin:10px 0;border:1px solid var(--ey-chat-border);border-radius:12px;overflow:hidden;background:var(--t-card)}
.page-project-detail [data-ey-chat-surface="project"] .codebar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-bottom:1px solid var(--ey-chat-border);font-size:11px;color:var(--ey-chat-muted)}
.page-project-detail [data-ey-chat-surface="project"] .ccopy{width:28px;height:26px;border-radius:7px;color:var(--ey-chat-muted);display:grid;place-items:center}
.page-project-detail [data-ey-chat-surface="project"] .ccopy:hover{background:rgba(255,255,255,.08);color:var(--ey-chat-text)}
.page-project-detail [data-ey-chat-surface="project"] .codebox pre{margin:0;padding:11px;overflow:auto}
.page-project-detail [data-ey-chat-surface="project"] .codebox code{background:transparent;border:0;padding:0;color:var(--t-acc-tx)}
.eywal-pd .pd-count{font-size:11.5px;font-weight:600;color:var(--ey-tx2);background:var(--t-elev);border:1px solid var(--ey-bd);padding:3px 9px;border-radius:999px;white-space:nowrap}
.eywal-pd .pd-ru{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 15px;border-top:1px solid var(--ey-bd)}
.eywal-pd .pd-ru:first-child{border-top:none}
.eywal-pd .pd-ru-info{min-width:0;flex:1}
.eywal-pd .pd-ru-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.eywal-pd .pd-ru-uri{margin-top:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:var(--ey-tx2);word-break:break-all;line-height:1.5}
.eywal-pd .pd-ru-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
.eywal-pd .pd-empty-ru{padding:13px 15px;font-size:12.5px;color:var(--ey-tx3);border-top:1px solid var(--ey-bd)}
.eywal-pd .pd-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;letter-spacing:.02em}
.eywal-pd .pd-badge.ok{background:rgba(76,175,116,.16);color:#7ad6a4}
.eywal-pd .pd-badge.pend{background:rgba(255,255,255,.12);color:var(--ey-tx3)}
.eywal-pd .pd-badge.off{background:var(--t-danger-soft);color:var(--t-danger)}
.eywal-pd .pd-badge.none{background:rgba(160,160,160,.12);color:var(--ey-tx3)}
.eywal-pd .pd-badge.mode{background:rgba(255,255,255,.05);border:1px solid var(--ey-bd);color:var(--ey-tx2)}
.eywal-pd .pd-badge.mode-v{background:var(--t-acc-soft);color:var(--t-acc-tx)}
.eywal-pd .pd-badge.age{background:rgba(255,255,255,.04);border:1px solid var(--ey-bd);color:var(--ey-tx3)}
.eywal-pd .pd-note-more{display:inline}
.eywal-pd .pd-note-more summary{display:inline;cursor:pointer;color:var(--ey-acc);font-weight:600;margin-left:4px;list-style:none}
.eywal-pd .pd-note-more summary::-webkit-details-marker{display:none}
.eywal-pd .pd-note-more[open]{display:block;margin-top:6px}
.eywal-pd #toastBox{display:none;border-radius:12px;padding:11px 14px;margin-bottom:14px;font-size:13px}
.eywal-modal .modal-content{background:var(--t-elev);border:1px solid var(--t-bd2);border-radius:12px;color:var(--t-tx)}
.eywal-modal .modal-header,.eywal-modal .modal-footer{border-color:var(--t-bd)}
.eywal-modal .modal-title,.eywal-modal .fw-semibold{color:var(--t-tx)}
[data-bs-theme="dark"] .eywal-modal .btn-close{filter:invert(1) grayscale(1) brightness(1.4)}
.eywal-modal.show{background:rgba(0,0,0,.5)}
.eywal-modal .modal-dialog{max-width:min(640px,calc(100vw - 32px))}
@media (max-width:575.98px){.eywal-modal .modal-dialog{margin:16px auto}}
.eywal-modal .em-label{font-size:13px;font-weight:600;color:var(--t-tx);margin-bottom:6px;display:block}
.eywal-modal .em-input,.eywal-modal .em-select{width:100%;background:var(--t-card);border:1px solid var(--t-bd2);border-radius:12px;padding:9px 12px;color:var(--t-tx);font-size:14px;outline:none;transition:color .15s,background-color .15s,border-color .15s,opacity .15s}
.eywal-modal .em-input:focus,.eywal-modal .em-select:focus{border-color:var(--t-bd2)}
.eywal-modal .em-input::placeholder{color:var(--t-tx2)}
.eywal-modal .em-hint{font-size:12px;color:var(--t-tx2);margin-top:7px;line-height:1.5}
.eywal-modal .em-hint code{background:rgba(255,255,255,.06);padding:1px 6px;border-radius:5px;color:var(--t-tx);font-size:11.5px}
.eywal-modal .em-icon{width:38px;height:38px;flex:0 0 38px;border-radius:12px;display:grid;place-items:center;background:var(--ey-acc,#e1825d);color:#fff}
.eywal-modal .em-warn{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--t-tx);line-height:1.5;background:rgba(255,255,255,.05);border:1px solid var(--t-bd2);border-radius:12px;padding:12px 13px;margin-top:14px}
.eywal-modal .em-warn i{color:var(--ey-acc);font-style:normal;margin-top:2px}
.eywal-modal .em-warn .fw-semibold{color:var(--ey-acc)}
.eywal-modal .btn-ghost{background:rgba(255,255,255,.02);border:1px solid var(--t-bd2);color:var(--t-tx);border-radius:12px;padding:8px 16px;font-weight:500}
.eywal-modal .btn-ghost:hover{background:rgba(255,255,255,.06);color:var(--t-tx)}
.eywal-modal .btn-acc{background:var(--ey-acc,#e1825d);border:1px solid var(--ey-acc,#e1825d);color:#fff;border-radius:12px;padding:8px 16px;font-weight:500;display:inline-flex;align-items:center;gap:7px}
.eywal-modal .btn-acc:hover{background:var(--ey-acc2,#c96b47);color:#fff}
.eywal-modal .btn-acc i{font-style:normal}
.eywal-modal .accordion-item,.eywal-modal .accordion-button{background:var(--t-card);color:var(--t-tx);border-color:var(--t-bd)}
.eywal-modal .accordion-button:not(.collapsed){background:var(--t-elev);color:var(--t-tx);box-shadow:none}
.eywal-modal .accordion-button:focus{box-shadow:none;border-color:var(--t-bd2)}
.eywal-modal .accordion-body{color:var(--t-tx)}
body.page-project-detail.modal-open .side,body.page-project-detail.modal-open .side-overlay,body.page-project-detail.modal-open #sidebar,body.page-project-detail.modal-open #sidebarOverlay,body.page-project-detail.modal-open #mobileUserHolder,body.page-project-detail.modal-open #mobileMenuBtn{pointer-events:none!important}
body.page-project-detail.modal-open .side-overlay,body.page-project-detail.modal-open #sidebarOverlay{display:none!important;z-index:-1!important;opacity:0!important}
body.page-project-detail .modal-backdrop{z-index:2050!important}
body.page-project-detail .modal{z-index:2060!important}
body.page-project-detail .toast-container,body.page-project-detail .ui-toast-stack{z-index:2070!important}
body.page-project-detail .modal-dialog,body.page-project-detail .modal-content{pointer-events:auto!important}
@media(max-width:720px){
  .eywal-pd .pd-hero-side{margin-left:0;align-items:flex-start}
  .eywal-pd .pd-app-head,.eywal-pd .pd-ru{align-items:flex-start;flex-direction:column}
  .eywal-pd .pd-app-actions,.eywal-pd .pd-ru-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}
  .eywal-pd .pd-btn,.eywal-pd .pd-icon-sq{min-height:40px}
  .eywal-modal .modal-footer{align-items:stretch}
  .eywal-modal .modal-footer .btn{width:100%;justify-content:center}
  .page-project-detail [data-ey-chat-surface="project"] .msg .body,.page-project-detail [data-ey-chat-surface="project"] .msg.u .body{max-width:100%}
  .page-project-detail [data-ey-chat-surface="project"] .project-chat-msgs{min-height:52vh}
}
.pt-panel{display:flex;flex-direction:column;height:clamp(660px,82vh,1080px);min-height:0}
.pt-thread{border:1px solid var(--pd-line,rgba(255,255,255,.1));border-radius:12px;background:var(--t-card);display:flex;flex-direction:column;overflow:hidden;min-height:0}
.pt-empty{color:var(--pd-muted,#aaa);font-size:12.5px;padding:16px;text-align:center}
#ptHost{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
#ptHost .pt-thread-empty,.pt-host-empty{margin:auto;color:var(--pd-muted,#aaa);font-size:13px;text-align:center;max-width:420px;line-height:1.6;padding:24px}
#ptHost .task-chat-surface{width:100%;max-width:none;height:100%;min-height:0;margin:0;display:flex;flex-direction:column;padding:16px 18px;overflow:hidden}
#ptHost .pt-resume-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border:1px solid rgba(245,180,80,.45);border-radius:12px;background:rgba(245,180,80,.10);color:var(--pd-text,#f0e6d6);padding:8px 11px;margin-bottom:10px;font-size:12.5px;line-height:1.5;flex:0 0 auto}
#ptHost .pt-resume-bar .pt-resume-ico{font-size:15px;opacity:.85}
#ptHost .pt-resume-bar .pt-resume-txt{flex:1 1 220px;min-width:0}
#ptHost .pt-resume-bar .pt-resume-go{flex:0 0 auto}
#ptHost .pt-resume-bar .pt-resume-x{flex:0 0 auto;background:transparent;border:0;color:inherit;opacity:.6;cursor:pointer;font-size:14px;line-height:1;padding:4px}
#ptHost .pt-resume-bar .pt-resume-x:hover{opacity:1}
#ptHost .task-chat-surface .pd-ai-chat-head{flex:0 0 auto}
#ptHost .task-chat-surface .msgs{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:18px;padding:6px 0 12px}
#ptHost .task-chat-surface .composer{flex:0 0 auto;margin-top:8px}
[data-page="project-detail"]{max-width:none}
[data-page="project-detail"] .container-xl,[data-page="project-detail"] .container{max-width:min(1720px,97vw)!important;width:100%!important}
@media(max-width:820px){
  .pt-panel{height:auto;min-height:calc(100dvh - 148px)}
  #ptHost{height:calc(100dvh - 148px);min-height:560px;max-height:none;border-radius:0;border-left:0;border-right:0}
  #ptHost .task-chat-surface{padding:10px;min-height:0;height:100%}
  #ptHost .task-chat-surface .msgs{gap:12px;padding:4px 0 8px}
  #ptHost .task-chat-surface .composer{position:sticky;bottom:env(safe-area-inset-bottom);z-index:4;margin-top:6px;background:var(--t-card);padding-bottom:max(0px,env(safe-area-inset-bottom))}
  #ptHost .task-chat-surface .composer textarea{max-height:32dvh}
}
@media(max-width:430px){
  #ptHost{height:calc(100dvh - 126px);min-height:520px}
  #ptHost .task-chat-surface{padding:8px}
}
.pt-no-attach #ptHost .task-chat-surface .attach-btn{display:none!important}
[data-page="project-detail"][data-project-tab="chat"] #projConnCard,[data-page="project-detail"][data-project-tab="history"] #projConnCard{display:none}
.eywal-pd{max-width:1020px;padding-left:6px;padding-right:6px;gap:10px}
.eywal-pd .pd-project-tabs{width:min(100%,980px);margin:10px auto 10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0}
.eywal-pd .pd-project-tabs .pd-tab{min-height:40px;border-radius:12px;padding:9px 10px;border:1px solid var(--t-bd);background:transparent;color:var(--ey-tx3);font-weight:660;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.eywal-pd .pd-project-tabs .pd-tab.active{background:var(--t-danger-soft);border-color:var(--t-danger);color:#fff}
.eywal-pd .pd-project-tabs .pd-tab i{font-size:13px;opacity:.95;flex:0 0 auto}
.eywal-pd .pd-project-tabs .pd-tab span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.6px}
.eywal-pd .pd-card{background:rgba(255,255,255,.015);border:1px solid var(--t-bd);border-radius:12px;box-shadow:none;margin-bottom:12px}
.eywal-pd .pd-card-head,.eywal-pd .pd-card-body{padding:12px 14px}
.eywal-pd .pd-card-head{background:transparent;border-bottom:1px solid var(--t-bd);gap:10px}
.eywal-pd .pd-card-body{padding-top:14px}
.eywal-pd .pd-head-title{font-size:14px}
.eywal-pd .pd-head-sub{font-size:12px}
.eywal-pd .pd-app,.eywal-pd .pd-ru,.eywal-pd .pd-redirect-group{border-radius:12px;border-color:var(--t-bd);box-shadow:none;background:rgba(255,255,255,.008)}
.eywal-pd .pd-app-head,.eywal-pd .pd-ru{padding:11px 12px}
.eywal-pd .pd-btn{border-radius:12px}
.eywal-pd .pd-icon-sq{width:30px;height:30px}
.eywal-pd .pd-badge,.eywal-pd .pd-count{border-radius:999px}
.eywal-pd .pd-note,.eywal-pd .pd-warn{border-radius:12px}
.eywal-pd .pd-app-add-modal,.eywal-pd .pd-redirect-add-modal{border-radius:12px}
.eywal-pd .project-manage-card > .pd-card-body > .pd-tabs{display:none}
@media(max-width:720px){
  .eywal-pd{padding-left:4px;padding-right:4px}
  .eywal-pd .pd-project-tabs{margin:10px 0 8px;gap:6px}
  .eywal-pd .pd-project-tabs .pd-tab{min-height:38px;padding:8px 9px;gap:6px}
  .eywal-pd .pd-project-tabs .pd-tab span{font-size:11.8px}
  .eywal-pd .pd-card{margin-bottom:10px}
  .eywal-pd .pd-card-head,.eywal-pd .pd-card-body{padding:12px}
  .eywal-pd .pd-card-body{padding-top:12px}
}
@media(max-width:430px){
  .eywal-pd .pd-project-tabs .pd-tab{min-height:40px;white-space:normal;line-height:1.25;text-align:center}
  .eywal-pd .pd-project-tabs .pd-tab span{font-size:11.8px}
}
.mem-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.mem-head h1{font-size:24px;margin:0 0 4px}
.mem-sub{margin:0;color:var(--t-tx2,#52525b)}
/* ==== standalone pages (404, /system chooser + login) ==== */
body.page-solo{margin:0;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px;box-sizing:border-box}
body.page-solo *{box-sizing:border-box}
.e404-wrap{width:100%;max-width:520px;text-align:center}
.e404-wrap .code{font-weight:700;line-height:1;font-size:clamp(64px,22vw,120px);color:var(--t-acc-tx);margin:0 0 8px}
.e404-wrap h1{font-size:clamp(18px,5.5vw,24px);margin:0 0 10px}
.e404-wrap p{color:var(--t-tx2);margin:0 auto 24px;max-width:38ch}
.e404-wrap .actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.e404-wrap .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 20px;text-decoration:none;border:1px solid var(--t-bd2)}
.e404-wrap .btn-ghost{background:transparent;color:var(--t-tx)}
.e404-wrap .btn-ghost:hover{border-color:var(--t-acc)}
@media (max-width:380px){
  .e404-wrap .actions{flex-direction:column}
  .e404-wrap .btn{width:100%}
}
.sys-brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:1.2rem}
.sys-brand i{color:var(--t-acc-tx)}
.sys-sub{color:var(--t-tx2);font-size:.9rem;margin:4px 0 20px}
.sys-card{width:min(380px,92vw);background:var(--t-card);border:1px solid var(--t-bd);border-radius:12px;padding:28px 24px}
.sys-title{font-size:1.25rem;font-weight:700}
.sys-card label{display:block;font-size:.85rem;color:var(--t-tx2);margin-bottom:6px}
.sys-card input[type=password]{width:100%;padding:10px 12px;font-size:16px}
.sys-btn{margin-top:16px;width:100%;padding:10px;border:0;border-radius:12px;background:var(--t-acc);color:#fff;font-weight:600;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.sys-btn:hover{background:var(--t-acc-h)}
.sys-err{background:var(--t-danger-soft);border:1px solid var(--t-danger);color:var(--t-danger);border-radius:12px;padding:9px 12px;font-size:.9rem;margin-bottom:16px}
/* ==== eywal-tokens.css (màn hình) ==== */
.side{background:var(--t-side)!important;background-image:none!important;border-right:1px solid var(--t-bd)!important}
.side .grouplbl{font-size:11px!important;font-weight:600!important;text-transform:uppercase;letter-spacing:.06em;color:var(--t-tx3)!important;padding:16px 12px 6px!important}
.side .item,.side .chat-item,.side .side-mi,.side-foot .foot-menu a,.side-foot .foot-menu button{min-height:36px;border-radius:8px!important;color:var(--t-tx2)!important;font-size:14px}
.side .item:hover,.side .chat-item:hover,.side .side-mi:hover{background:rgba(0,0,0,.04)!important;color:var(--t-tx)!important}
:root[data-bs-theme="dark"] .side .item:hover,:root[data-bs-theme="dark"] .side .chat-item:hover,:root[data-bs-theme="dark"] .side .side-mi:hover{background:rgba(255,255,255,.05)!important}
.side .item.on,.side .chat-item.on,.side .item.is-active{background:var(--t-acc-soft)!important;color:var(--t-acc-tx)!important;font-weight:600}
.side i.fa-solid,.side i.fa-regular{font-size:16px!important;width:18px;text-align:center}
.side-tabs{background:var(--t-elev)!important;border-radius:12px!important;padding:3px!important}
.side-tab{border-radius:8px!important;color:var(--t-tx2)!important;font-weight:500}
.side-tab.on{background:var(--t-card)!important;color:var(--t-tx)!important;box-shadow:var(--t-shadow)}
.foot-menu{background:var(--t-card)!important;border:1px solid var(--t-bd)!important;border-radius:var(--t-r)!important}
.foot-menu .danger,.foot-menu a.danger{color:var(--t-danger)!important}
.foot-user{border-radius:12px!important}
.msgs,.ey-chat-surface .msgs,.ey-chat-surface{max-width:760px;margin-left:auto;margin-right:auto}
.composer{max-width:760px;margin-left:auto!important;margin-right:auto!important;background:var(--t-card)!important;border:1px solid var(--t-bd2)!important;border-radius:var(--t-r-in)!important}
.composer:focus-within{border-color:var(--t-acc)!important;box-shadow:0 0 0 3px var(--t-acc-soft)!important}
.composer textarea{color:var(--t-tx)!important;font-family:var(--t-font)!important}
.composer--spaced::before,[data-ey-chat-surface] .composer::before{background:transparent!important}
.composer .send{width:34px!important;height:34px!important;border-radius:50%!important;background:var(--t-acc)!important;color:#fff!important;border:0!important}
.composer .send:hover{background:var(--t-acc-h)!important}
.composer .send.is-empty{opacity:.45}
.msg{gap:12px}
.msg.u .bubble{background:var(--t-acc-soft)!important;color:var(--t-tx)!important;border:0!important;border-radius:12px 12px 4px 12px!important;padding:10px 14px!important;box-shadow:none!important}
.msg.a .bubble{background:transparent!important;border:0!important;box-shadow:none!important;padding:2px 0!important;color:var(--t-tx)!important}
.msg .av,.msg .avatar{width:28px!important;height:28px!important;border-radius:50%!important;font-size:13px}
.bubble code{background:var(--t-elev)!important;color:var(--t-tx)!important;border-radius:6px}
.bubble pre{background:var(--t-elev)!important;border:1px solid var(--t-bd)!important;border-radius:12px!important}
.msg-tools button{color:var(--t-tx3)!important;border-radius:8px!important}
.msg-tools button:hover{background:var(--t-elev)!important;color:var(--t-tx)!important}
.chat-chip,.chat-empty-chips span,.chat-empty-chips .chat-chip{border-radius:999px!important;background:var(--t-card)!important;border:1px solid var(--t-bd)!important;color:var(--t-tx2)!important}
.chat-chip:hover{border-color:var(--t-acc)!important;color:var(--t-acc)!important}
.ey-chat-menu{background:var(--t-card)!important;border:1px solid var(--t-bd)!important;border-radius:var(--t-r)!important}
@media (max-width:991.98px){
  .side{box-shadow:0 0 0 1px var(--t-bd),0 12px 32px rgba(0,0,0,.18)!important}
  .msgs,.composer{max-width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
html .eywal-pd,html .eywal-projects{max-width:880px!important;margin:0 auto!important;padding:24px 16px 64px!important;color:var(--t-tx)!important;font-family:var(--t-font)!important}
html .eywal-pd .pd-back{color:var(--t-tx2)!important;font-size:13px;margin-bottom:12px}
html .eywal-pd .pd-head-title{font-size:16px!important;font-weight:600!important;color:var(--t-tx)!important;letter-spacing:0!important}
html .eywal-pd .pd-head-title i{background:var(--t-acc-soft)!important;color:var(--t-acc)!important;border:0!important;border-radius:8px!important}
html .eywal-pd .pd-head-sub{font-size:13px!important;color:var(--t-tx2)!important;max-width:none!important}
html .eywal-pd .pd-tabs{display:flex!important;gap:24px!important;width:100%!important;padding:0!important;margin:0 0 24px!important;border:0!important;border-bottom:1px solid var(--t-bd)!important;border-radius:0!important;background:transparent!important;overflow-x:auto}
html .eywal-pd .pd-tab{flex:0 0 auto!important;height:auto!important;padding:0 0 10px!important;margin-bottom:-1px;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;background:transparent!important;color:var(--t-tx2)!important;font-size:14px!important;font-weight:500!important;box-shadow:none!important}
html .eywal-pd .pd-tab:hover{color:var(--t-tx)!important;background:transparent!important}
html .eywal-pd .pd-tab.active{color:var(--t-tx)!important;font-weight:600!important;border-bottom-color:var(--t-acc)!important;background:transparent!important}
html .eywal-pd .pd-card{margin-bottom:24px!important}
html .eywal-pd .pd-card-head{padding:16px 16px 12px!important;border-bottom:1px solid var(--t-bd)!important;background:transparent!important}
html .eywal-pd .pd-card-body{padding:16px!important}
html .eywal-pd .pd-note{background:var(--t-elev)!important;border:0!important;border-radius:12px!important;color:var(--t-tx2)!important;font-size:13px!important;padding:10px 12px!important}
html .eywal-pd .pd-note i{color:var(--t-tx3)!important}
html .eywal-pd .pd-warn{background:rgba(217,119,6,.08)!important;border:1px solid rgba(217,119,6,.25)!important;color:var(--t-tx)!important;border-radius:12px!important}
html .eywal-pd .pd-badge,html .eywal-projects .ep-badge{border-radius:999px!important;background:var(--t-elev)!important;color:var(--t-tx2)!important;border:1px solid var(--t-bd)!important;font-weight:500!important;font-size:12px!important}
html .eywal-pd .pd-icon-sq{background:var(--t-acc-soft)!important;color:var(--t-acc)!important;border:0!important;border-radius:12px!important}
html .eywal-pd .pd-app-name{color:var(--t-tx)!important;font-weight:600!important}
html .eywal-pd .pd-app-meta,html .eywal-pd .pd-app-purpose,html .eywal-pd .pd-ru-info,html .eywal-pd .pd-time{color:var(--t-tx2)!important}
html .eywal-pd code{background:var(--t-elev)!important;color:var(--t-tx)!important;border-radius:6px!important}
html .eywal-pd .pd-btn,html .eywal-projects .ep-new{min-height:36px;border-radius:var(--t-r-btn)!important;border:1px solid var(--t-bd2)!important;background:var(--t-card)!important;color:var(--t-tx)!important;font-weight:500!important;box-shadow:none!important;background-image:none!important}
html .eywal-pd .pd-btn:hover,html .eywal-projects .ep-new:hover{background:var(--t-elev)!important}
html .eywal-pd .pd-btn.primary,html .eywal-projects .ep-new{background:var(--t-acc)!important;border-color:var(--t-acc)!important;color:#fff!important}
html .eywal-pd .pd-btn.primary:hover,html .eywal-projects .ep-new:hover{background:var(--t-acc-h)!important}
html .eywal-pd .pd-btn.danger,html .eywal-pd [data-act*="delete"]{background:var(--t-danger-soft)!important;color:var(--t-danger)!important;border-color:color-mix(in srgb,var(--t-danger) 35%,transparent)!important}
html .eywal-pd .pd-icon-btn{border-radius:8px!important;color:var(--t-tx2)!important;background:transparent!important;border:0!important}
html .eywal-pd .pd-icon-btn:hover{background:var(--t-elev)!important;color:var(--t-tx)!important}
html .eywal-projects .ep-h{font-size:24px!important;font-weight:600!important;font-family:var(--t-font)!important;color:var(--t-tx)!important}
html .eywal-projects .ep-s,html .eywal-projects .ep-hint,html .eywal-projects .ep-label{color:var(--t-tx2)!important}
html .eywal-projects .ep-empty{border:1px dashed var(--t-bd2)!important;border-radius:var(--t-r)!important;background:transparent!important;color:var(--t-tx2)!important}
html .eywal-projects [class*="ep-row"]{background:var(--t-card)!important;border:1px solid var(--t-bd)!important;border-radius:var(--t-r)!important;box-shadow:var(--t-shadow)!important;color:var(--t-tx)!important}
html .page-project-detail [data-ey-chat-surface="project"]{max-width:760px!important}
@media (max-width:600px){
  html .eywal-pd .pd-tabs{gap:16px!important}
  html .eywal-pd,html .eywal-projects{padding:16px 16px 48px!important}
}
html [data-page="home"] .container-xl,html [data-page="home"]>.container{max-width:880px!important;margin:0 auto!important;padding:32px 16px 64px!important}
html [data-page="home"] .card{margin-bottom:24px!important}
html [data-page="home"] .card-body{padding:16px 16px!important}
html .ui-section-title{font-size:16px!important;font-weight:600!important;color:var(--t-tx)!important}
html .ui-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
html .table{--bs-table-bg:transparent;--bs-table-color:var(--t-tx);color:var(--t-tx)!important;margin:0}
html .table>:not(caption)>*>*{background:transparent!important;border-bottom-color:var(--t-bd)!important;color:var(--t-tx)!important;padding:10px 8px!important}
html .table thead th{font-size:13px!important;font-weight:600!important;text-transform:uppercase;letter-spacing:.04em;color:var(--t-tx3)!important}
html .badge.text-bg-primary{background:var(--t-acc-soft)!important;color:var(--t-acc-tx)!important}
html .badge.text-bg-secondary{background:var(--t-elev)!important;color:var(--t-tx2)!important}
html .badge.text-bg-warning{background:rgba(217,119,6,.12)!important;color:#92400e!important}
:root[data-bs-theme="dark"] .badge.text-bg-warning{color:#fbbf24!important}
html .badge.text-bg-info{background:var(--t-acc-soft)!important;color:var(--t-acc-tx)!important}
:root[data-bs-theme="dark"] .badge.text-bg-info{color:var(--t-acc-tx)!important}
html .alert-warning{background:rgba(217,119,6,.08)!important;border:1px solid rgba(217,119,6,.25)!important;color:var(--t-tx)!important;border-radius:12px!important}
html #nameText{font-size:18px!important;font-weight:600!important}
html [data-page="home"] img.rounded-circle{border:1px solid var(--t-bd)!important}
html .admin-shell{max-width:1040px!important;margin:0 auto!important;padding:24px 16px 64px!important;font-family:var(--t-font)!important;color:var(--t-tx)!important}
html .admin-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:24px!important;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}
html .admin-title{font-size:16px!important;font-weight:600!important;color:var(--t-tx)!important;font-family:var(--t-font)!important;letter-spacing:0!important}
html .admin-top .admin-title,html .admin-shell>h1{font-size:22px!important}
html .admin-sub{color:var(--t-tx2)!important;font-size:13px!important}
html .admin-card{background:var(--t-card)!important;background-image:none!important;border:1px solid var(--t-bd)!important;border-radius:var(--t-r)!important;box-shadow:var(--t-shadow)!important;margin-bottom:24px!important}
html .admin-card-body{padding:16px!important}
html .admin-actions{display:flex;gap:8px;flex-wrap:wrap}
html .admin-grid{gap:16px!important}
html .admin-section-title{font-size:12px!important;font-weight:600!important;text-transform:uppercase;letter-spacing:.06em;color:var(--t-tx3)!important}
html .admin-side .admin-side-grp,html .admin-side .admin-side-group>span,html .admin-side-nav .grp{font-size:11px!important;font-weight:600!important;text-transform:uppercase;letter-spacing:.06em;color:var(--t-tx3)!important}
html .admin-side-nav a{min-height:36px;border-radius:8px!important;color:var(--t-tx2)!important;font-size:14px}
html .admin-side-nav a:hover{background:rgba(0,0,0,.04)!important;color:var(--t-tx)!important}
:root[data-bs-theme="dark"] .admin-side-nav a:hover{background:rgba(255,255,255,.05)!important}
html .admin-side-nav a.is-active,html .admin-side-nav a.on,html .admin-side-nav a[aria-current="page"]{background:var(--t-acc-soft)!important;color:var(--t-acc-tx)!important;font-weight:600}
html .admin-shell pre,html .admin-shell code{background:var(--t-elev)!important;color:var(--t-tx)!important;border-radius:8px}
html .admin-shell table{color:var(--t-tx)!important}
html .admin-shell table th{color:var(--t-tx3)!important;font-size:13px;font-weight:600}
html .admin-shell table td,html .admin-shell table th{border-color:var(--t-bd)!important;background:transparent!important}
html .admin-map-frame{border:1px solid var(--t-bd)!important;border-radius:var(--t-r)!important}
@media (max-width:420px){
  html .admin-shell,html [data-page="home"] .container-xl{padding:16px 16px 48px!important}
  html .table-responsive{overflow-x:auto}
  html .eywal-pd{padding-left:16px!important;padding-right:16px!important}
}
/* ==== Chuẩn kích thước (09/11, yêu cầu chủ nhân): cột 960/760, chữ ≥13px, nút ≥40px (mobile 44px), thẻ dự án ≥280px ==== */
html .eywal-projects,html .eywal-pd{max-width:960px!important;width:100%!important;box-sizing:border-box}
.eywal-projects .pgrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))!important;gap:16px!important}
.pcard{padding:20px!important;min-width:0}
.pcard h3{font-size:16px!important;font-weight:600!important;overflow-wrap:anywhere}
.pcard p,.eywal-projects .ep-s{font-size:14px!important}
.pcard .meta,.pcard .pid,.pid{font-size:13px!important;overflow:hidden;text-overflow:ellipsis}
small,.small,.proj-task-empty,.text-secondary.small,.foot-user .fu-sub,.side .grouplbl,.grouplbl,.home-sub,.model-label,.is-hidden-secret,.side .item .t,.side .chat-item{font-size:13px!important}
.badge,th,.table th,.table td,.text-end{font-size:13px!important}
code,kbd,samp{font-size:max(.875em,12px)}
.btn,.btn-sm,.pd-btn,.ep-new,.home-chip,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),select{min-height:40px!important;font-size:max(1em,14px)}
.btn-link.btn-sm{min-height:40px!important;display:inline-flex;align-items:center}
.head-toggle,.grouplbl-act,.pd-icon-btn,.logoBox,.cbtn,.composer .model,.composer .send,.composer .stop{min-width:40px!important;min-height:40px!important;width:auto!important;height:40px!important}
.table-responsive,.tbl{max-width:100%;overflow-x:auto}
td,th{overflow-wrap:anywhere}
@media (max-width:767.98px){
  .btn,.btn-sm,.pd-btn,.ep-new,.home-chip,.head-toggle,.grouplbl-act,.pd-icon-btn,.cbtn,.composer .model,.composer .send,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]),select{min-height:44px!important}
  .head-toggle,.grouplbl-act,.pd-icon-btn,.cbtn,.composer .send{height:44px!important;min-width:44px!important}
  table.table,table.table thead,table.table tbody,table.table tr,table.table td,table.table th{display:block;width:100%}
  table.table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  table.table tr{border:1px solid var(--t-bd);border-radius:12px;padding:8px 12px;margin-bottom:8px}
  table.table td{border:0!important;padding:4px 0!important;text-align:left!important}
}
.proj-task .t,.pd-tab span,.pd-btn span,.pd-time span,.composer .model span,.model span,.chat-item .t{font-size:13px!important}
#logoBox{min-width:40px!important;min-height:40px!important}
html body .table td.text-end,html body table td{font-size:13px!important}
/* ==== Mobile gọn (<768px, 09/11): header 1 hàng 52px, padding 16, thẻ 1 cột gap 12, composer dính đáy, tab cuộn ngang ==== */
@media (max-width:767.98px){
  .content.ui-page-container,main.content{padding:0 16px 16px!important}
  html .eywal-projects,html .eywal-pd,.container-xl{padding:0!important;gap:12px!important}
  .eywal-projects .ep-head,.mem-head,.topbar{position:sticky;top:0;z-index:20;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:8px;height:52px;min-height:52px;margin:0 -16px 12px!important;padding:0 16px 0 60px!important;background:var(--t-bg)!important;border-bottom:1px solid var(--t-bd)}
  .topbar{margin:0!important}
  .eywal-projects .ep-head>div:first-child,.mem-head>div:first-child{min-width:0;flex:1 1 auto}
  .eywal-projects .ep-h,.mem-head h1,.topbar .ttl,.topbar h1{font-size:18px!important;margin:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .eywal-projects .ep-s,.mem-sub,.mem-head p,.home-sub,.pd-time,.chat-empty-text,.ep-head .small{display:none!important}
  .mem-head .btn~.btn,.ep-head .ep-new~*{display:none!important}
  .ep-head .ep-new,.mem-head .btn{flex:0 0 auto;margin:0!important}
  .eywal-projects .pgrid{grid-template-columns:1fr!important;gap:12px!important}
  .card,.pd-card{margin-bottom:12px!important}
  /* chat: composer dính đáy, chip 1 hàng cuộn ngang */
  .scroll>.col{display:flex;flex-direction:column;min-height:100%}
  .composer{position:sticky!important;bottom:0;z-index:15;margin-top:auto!important;padding-bottom:calc(8px + env(safe-area-inset-bottom))!important}
  .composer textarea{min-height:44px!important}
  .home-chips,.chat-empty-chips{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;justify-content:flex-start!important;max-width:100%}
  .home-chips::-webkit-scrollbar,.chat-empty-chips::-webkit-scrollbar,.pd-tabs::-webkit-scrollbar{display:none}
  .home-chip,.chat-chip{flex:0 0 auto;white-space:nowrap}
  /* chi tiết dự án */
  .pd-tabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}
  .pd-tab{flex:0 0 auto;white-space:nowrap}
  .pd-hero{display:grid!important;grid-template-columns:48px 1fr;gap:12px!important;align-items:center}
  .pd-logo-wrap,.pd-logo-wrap #logoImg{width:48px!important;height:48px!important}
  .pd-hero-side{grid-column:1/-1}
  /* personal-info */
  .home-identity-card .card-body,.home-identity-card .card-body>div:first-child{display:flex;flex-direction:column;align-items:center;text-align:center}
  .mobile-side-btn{top:4px!important;left:8px!important;z-index:30!important}
  html .eywal-pd .pd-back{position:sticky;top:0;z-index:20;display:flex!important;align-items:center;height:52px;margin:0 -16px 12px!important;padding:0 16px 0 60px!important;background:var(--t-bg)!important;border-bottom:1px solid var(--t-bd);font-size:15px!important}
  .composer{padding:6px 8px calc(6px + env(safe-area-inset-bottom))!important;min-height:0!important;gap:4px}
  .composer .cbar{min-height:40px!important;margin:0!important}
  .composer{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:flex-end!important}
  .composer .cbar{display:contents!important}
  .composer .attach-btn{order:0}
  .composer textarea{order:1;flex:1 1 120px;min-width:0;max-height:120px}
  .composer .recipient-wrap,.composer .send-wrap,.composer .sp{order:2}
  .composer .sp{display:none}
  .composer .attach-preview{order:-1;flex-basis:100%}
  .composer .model-label{display:none!important}
  table.table,.home-provider-table{min-width:0!important;width:100%!important}
}
/* ==== /system tổng quan (09/11) ==== */
.sys-ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.sys-ov .admin-card{margin:0}
.sys-ov-h{font-size:16px;font-weight:600;margin:0 0 12px;display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:var(--t-tx)}
.sys-ov-count{font-size:13px;font-weight:500;color:var(--t-tx2)}
.sys-st{list-style:none;margin:0;padding:0}
.sys-st-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto;column-gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--t-bd)}
.sys-st-row:first-child{border-top:0}
.sys-st-dot{width:10px;height:10px;border-radius:50%;background:var(--t-danger)}
.sys-st-dot.is-ok{background:#16a34a}
.sys-st-lbl{font-size:14px;color:var(--t-tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sys-st-val{font-size:14px;color:var(--t-tx2);text-align:right}
.sys-st-hint{grid-column:2/-1;font-size:13px;color:var(--t-tx2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sys-ov-foot,.sys-ov-empty{font-size:13px;color:var(--t-tx2);margin:12px 0 0}
.sys-menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sys-menu a{display:flex;gap:12px;align-items:flex-start;min-height:44px;padding:10px 12px;border:1px solid var(--t-bd);border-radius:12px;color:var(--t-tx);text-decoration:none}
.sys-menu a:hover{border-color:var(--t-acc)}
.sys-menu i{width:20px;margin-top:3px;color:var(--t-acc-tx)}
.sys-menu strong{display:block;font-size:14px;font-weight:600}
.sys-menu small{display:block;font-size:13px;color:var(--t-tx2)}
@media (max-width:767.98px){.sys-ov-grid{grid-template-columns:1fr;gap:12px}}
/* ==== UI vòng 1 (09/11): chat — cột 760 khớp composer, rõ ai nói, nhịp chữ, màn chào ==== */
.ey-chat-surface .msgs,.msgs{width:100%!important;max-width:760px!important;margin-left:auto!important;margin-right:auto!important;gap:24px!important;padding:8px 0 24px!important}
.msg{width:100%;max-width:100%;align-items:flex-start}
.msg.u{justify-content:flex-end}
.msg.u .body{max-width:min(80%,600px)!important;display:flex;flex-direction:column;align-items:flex-end}
.msg.a .body{flex:1 1 auto;min-width:0;max-width:100%!important}
.msg.u .bubble{max-width:100%;font-size:15px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}
.msg.a{justify-content:flex-start}
.msg.a .bubble{max-width:100%;font-size:15px!important;line-height:1.7!important}
.msg.a .bubble p{margin:0 0 .75em}
.msg.a .bubble p:last-child{margin-bottom:0}
.msg .who,.msg .name{font-size:13px!important;font-weight:600;color:var(--t-tx2)!important;margin-bottom:4px}
.msg .av,.msg .avatar{flex:0 0 28px;background:var(--t-acc-soft)!important;color:var(--t-acc-tx)!important;border:0!important}
.msg-tools{min-height:32px;opacity:.55;transition:opacity .15s}
.msg:hover .msg-tools,.msg:focus-within .msg-tools{opacity:1}
.ey-chat-surface .composer,.col>.composer,.composer{width:100%!important;max-width:760px!important;padding:10px 12px!important;border-radius:16px!important}
.composer textarea{font-size:15px!important;line-height:1.5!important;padding:4px 2px!important}
.composer .send.is-empty,.composer .send:disabled{background:var(--t-elev)!important;color:var(--t-tx3)!important;opacity:1!important}
/* màn chào */
.greet{gap:10px;margin-bottom:6px}
.greet h1{font-size:26px!important;font-weight:600!important;letter-spacing:-.01em}
.home-sub{font-size:15px!important;line-height:1.5;color:var(--t-tx2)!important;margin:0 0 20px!important}
.home-chips{gap:8px!important;margin-bottom:20px!important}
.home-chip{min-height:40px!important;padding:0 16px!important;border-radius:999px!important;border:1px solid var(--t-bd2)!important;background:var(--t-card)!important;color:var(--t-tx)!important;font-size:14px!important;font-weight:500}
.home-chip:hover{border-color:var(--t-acc)!important;color:var(--t-acc-tx)!important}
.home-chip i{color:var(--t-acc-tx)}
/* composer: 1 viền duy nhất ở khung khi focus (2026-11-09) */
[data-chat-composer] textarea,[data-chat-composer] textarea:focus,[data-chat-composer] textarea:focus-visible{outline:none!important;border:0!important;box-shadow:none!important;background:transparent!important;width:100%;max-width:100%;box-sizing:border-box;margin:0}
.composer:focus-within{box-shadow:none!important}
/* ==== Composer: một viền duy nhất ở khung khi focus (09/11) ==== */
html body .composer textarea,html body .composer textarea:focus,html body .composer textarea:focus-visible{border:0!important;outline:none!important;box-shadow:none!important;background:transparent!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;margin:0!important;min-width:0}
html body .composer{box-sizing:border-box;overflow:hidden;border:1px solid var(--t-bd2)!important;box-shadow:none!important;transition:border-color .15s!important}
html body .composer:focus-within{border-color:var(--t-acc)!important;box-shadow:none!important;outline:none!important}
/* ==== Trang khách: trang chủ chưa đăng nhập + /sign-in dùng chung bố cục (09/11) ==== */
body.page-guest{margin:0;background:var(--t-bg)!important;color:var(--t-tx);font-size:16px}
.gx{max-width:720px;margin:0 auto;padding:32px 20px 40px;box-sizing:border-box;min-height:100dvh;display:flex;flex-direction:column}
.gx-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--t-tx)}
.gx-brand img{width:36px;height:36px;border-radius:10px;flex:0 0 36px}
.gx-hero{padding:56px 0 40px;text-align:left}
.gx-title{font-size:clamp(28px,5vw,40px)!important;line-height:1.2;font-weight:700!important;margin:0 0 14px;color:var(--t-tx);letter-spacing:-.015em}
.gx-sub{font-size:18px;line-height:1.6;color:var(--t-tx2);margin:0 0 28px;max-width:56ch}
.gx-google{box-sizing:border-box;max-width:100%;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 24px;border-radius:12px;background:var(--t-acc);color:#fff!important;font-size:16px;font-weight:600;text-decoration:none;transition:background-color .15s}
.gx-google:hover{background:var(--t-acc-h)}
.gx-google img{background:#fff;border-radius:50%;padding:2px;width:24px;height:24px}
.gx-trust{font-size:15px;color:var(--t-tx2);margin:14px 0 0}
.gx-benefits{list-style:none;margin:0;padding:24px 0 0;border-top:1px solid var(--t-bd);display:flex;flex-direction:column;gap:20px}
.gx-benefits li{display:flex;gap:14px;align-items:flex-start}
.gx-ico{flex:0 0 40px;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--t-acc-soft);color:var(--t-acc-tx)}
.gx-ico svg{width:20px;height:20px}
.gx-benefits h2{font-size:17px!important;font-weight:600!important;margin:0 0 4px;color:var(--t-tx)}
.gx-benefits p{font-size:15px;line-height:1.6;margin:0;color:var(--t-tx2)}
.gx-foot{margin-top:auto;padding-top:40px;font-size:14px;color:var(--t-tx2)}
.gx .ey-proj{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--t-bd);border-radius:12px;background:var(--t-card);margin-bottom:16px}
.gx .ey-proj img{width:44px;height:44px;border-radius:10px;object-fit:cover}
.gx .ey-share{padding:12px;border:1px solid var(--t-bd);border-radius:12px;background:var(--t-card);margin-bottom:20px;font-size:15px}
.gx .ey-warning-box{border:1px solid var(--t-danger);background:var(--t-danger-soft);border-radius:12px;color:var(--t-tx);font-size:15px;display:flex;gap:10px}
@media (max-width:767.98px){.gx{padding:20px 16px 28px}.gx-hero{padding:32px 0 28px}.gx-sub{font-size:16px}.gx-google{width:100%}}
/* ==== Nút đổi ảnh trên logo dự án / avatar: 28px tròn, góc dưới phải (09/11) ==== */
html body #logoBox#logoBox,html body #avatarEditBtn#avatarEditBtn{box-sizing:border-box!important;position:absolute!important;right:-4px!important;bottom:-4px!important;left:auto!important;top:auto!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:0!important;border-radius:50%!important;display:grid!important;place-items:center;background:var(--t-elev)!important;color:var(--t-tx)!important;border:2px solid var(--t-card)!important;box-shadow:none!important;font-size:12px!important;line-height:1;opacity:0;transition:opacity .15s!important}
html body #logoBox#logoBox i,html body #avatarEditBtn#avatarEditBtn i{font-size:12px!important}
html body .pd-logo-wrap:hover #logoBox#logoBox,html body #logoBox#logoBox:focus-visible,html body .pd-logo-wrap:focus-within #logoBox#logoBox,html body .home-identity-card .position-relative:hover #avatarEditBtn#avatarEditBtn,html body #avatarEditBtn#avatarEditBtn:focus-visible,html body .home-identity-card .position-relative:focus-within #avatarEditBtn#avatarEditBtn{opacity:1}
@media (hover:none),(max-width:767.98px){html body #logoBox#logoBox,html body #avatarEditBtn#avatarEditBtn{opacity:1;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important}}
.pd-logo-wrap{position:relative}
html body #avatarImg#avatarImg{display:block!important;width:68px!important;height:68px!important;min-width:68px;background:var(--t-elev);color:transparent;overflow:hidden}
/* ==== Chat task: một lớp, giống chat trang chủ (09/11) ==== */
html body [data-project-tab="chat"] .project-manage-card,html body [data-project-tab="chat"] .project-manage-card>.pd-card-body,html body [data-project-tab="chat"] #ptHost.pt-thread{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important}
html body [data-project-tab="chat"] #ptHost .task-chat-surface{max-width:760px!important;margin:0 auto!important;padding:16px 0 0!important}
html body [data-project-tab="chat"] #ptHost .task-chat-surface .msgs,html body [data-project-tab="chat"] #ptHost .task-chat-surface .composer{max-width:760px!important;width:100%!important;margin-left:auto!important;margin-right:auto!important}
/* ==== Tin nhắn chat classic (09/11, chung chat trang chủ + chat task) ==== */
html body .msgs{max-width:760px!important;margin-left:auto!important;margin-right:auto!important;gap:24px!important}
/* người dùng */
html body .msg.u .body{max-width:75%!important}
html body .msg.u .bubble{background:var(--t-elev)!important;color:var(--t-tx)!important;border:0!important;border-radius:14px!important;padding:8px 12px!important;font-size:15px!important;line-height:1.6!important;box-shadow:none!important}
/* bot: không bubble */
html body .msg.a{gap:10px!important;align-items:flex-start}
html body .msg.a .avatar,html body .msg.a .av{flex:0 0 28px!important;width:28px!important;height:28px!important;border-radius:50%!important;display:grid!important;place-items:center;background:var(--t-acc-soft)!important;color:var(--t-acc-tx)!important;font-size:14px!important;margin:0!important}
html body .msg.a .avatar i,html body .msg.a .av i{font-size:14px!important}
html body .msg.a .body{display:flex!important;flex-wrap:wrap;align-items:center;column-gap:8px;min-width:0}
html body .msg.a .who{flex:0 0 100%;height:28px;line-height:28px;margin:0!important;font-size:13px!important;font-weight:600!important;color:var(--t-tx2)!important}
html body .msg.a .bubble{flex:0 0 100%;background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:4px 0 0!important;font-size:15px!important;line-height:1.6!important;color:var(--t-tx)!important}
/* hàng nút + thời gian */
html body .msg .msg-tools{min-height:0!important;margin-top:6px!important;gap:2px!important;opacity:0;transition:opacity .15s}
html body .msg:hover .msg-tools,html body .msg:focus-within .msg-tools{opacity:1}
html body .msg .msg-tools button{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;padding:0!important;border:0!important;background:transparent!important;border-radius:8px!important;color:var(--t-tx2)!important}
html body .msg .msg-tools button:hover{background:var(--t-elev)!important;color:var(--t-tx)!important}
html body .msg .msg-tools button i{font-size:16px!important}
html body .msg .msg-duration{margin-top:6px!important;font-size:12px!important;color:var(--t-tx2)!important;opacity:.8;font-variant-numeric:tabular-nums}
@media (hover:none),(max-width:767.98px){html body .msg .msg-tools{opacity:.6}}

/* === eywal-core 2026-11-09: BỐ CỤC CHAT KIỂU ỨNG DỤNG (trang chủ + task) ===
   Composer đứng yên dưới cùng; danh sách tin là vùng cuộn riêng; tin neo đáy (ít tin thì sát composer).
   Selector: #ey-scroll, #view-chat:not(.ey-home-empty), #view-chat > #msgs, .task-chat-surface, .task-chat-surface .msgs, .ey-chat-surface .composer. Màn chào (.ey-home-empty) giữ như cũ. */
#ey-scroll:has(> #view-chat:not(.hidden):not(.ey-home-empty)){overflow:hidden!important;padding-top:0!important;padding-bottom:0!important}
#view-chat:not(.ey-home-empty){height:100%!important;min-height:0!important;max-height:100%!important;display:flex!important;flex-direction:column!important;overflow:hidden!important}
#view-chat:not(.ey-home-empty) > #msgs,.task-chat-surface .msgs{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;display:flex!important;flex-direction:column!important;-webkit-overflow-scrolling:touch}
#view-chat:not(.ey-home-empty) > #msgs > :first-child,.task-chat-surface .msgs > :first-child{margin-top:auto!important}
#view-chat:not(.ey-home-empty) > .composer,.task-chat-surface .composer{flex:0 0 auto!important;position:relative!important;bottom:auto!important;margin-bottom:0!important;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))!important}
.task-chat-surface{display:flex!important;flex-direction:column!important;min-height:0!important}
.ey-chat-surface{position:relative}
.ey-chat-surface .ey-chat-jump{width:auto!important;padding:0 12px!important;border-radius:999px!important;grid-auto-flow:column;gap:4px;font-size:12.5px;bottom:calc(var(--ey-composer-h,106px) + 12px)!important}
/* ==== UI vòng 2 (09/11): /projects + chi tiết dự án + task ==== */
/* 1. Thẻ dự án: logo 44px bo góc có nền, tên 16px, mã mờ, chiều cao theo nội dung, hover viền nhấn */
.eywal-projects .pcard{display:flex!important;flex-direction:column;gap:4px;min-height:0!important;height:auto!important;padding:20px!important;border:1px solid var(--t-bd)!important;background:var(--t-card)!important;transition:border-color .15s!important}
.eywal-projects .pcard:hover{border-color:var(--t-acc)!important;background:var(--t-card)!important}
.eywal-projects .pcard img,.eywal-projects .pcard .pi{width:44px!important;height:44px!important;border-radius:10px!important;object-fit:cover;background:var(--t-elev);margin-bottom:10px!important;border:1px solid var(--t-bd)}
.eywal-projects .pcard h3{margin:0!important}
.eywal-projects .pcard .meta{margin-top:10px!important;gap:8px!important;flex-wrap:wrap}
.eywal-projects .pgrid{align-items:start}
.eywal-projects .ep-head{align-items:center!important;margin-bottom:20px!important}
.eywal-projects .ep-s{max-width:60ch}
/* 2. Chi tiết dự án: thanh tab không lộ thanh cuộn, gạch chân nhấn rõ */
.pd-tabs{scrollbar-width:none!important;overflow-y:hidden!important}
.pd-tabs::-webkit-scrollbar{display:none!important}
.pd-tab{min-height:44px;font-size:14px!important;color:var(--t-tx2)!important;border-bottom:2px solid transparent!important}
.pd-tab.active{color:var(--t-tx)!important;border-bottom-color:var(--t-acc)!important;font-weight:600}
/* 3. Nút Xoá dự án nhẹ hơn: viền mảnh, chỉ đỏ khi rê chuột */
html body .eywal-pd .pd-hero .pd-btn.danger{background:transparent!important;border:1px solid var(--t-bd2)!important;color:var(--t-tx2)!important}
html body .eywal-pd .pd-hero .pd-btn.danger:hover,html body .eywal-pd .pd-hero .pd-btn.danger:focus-visible{border-color:var(--t-danger)!important;color:var(--t-danger)!important;background:var(--t-danger-soft)!important}
/* 4. Màn trống chat task căn giữa, icon trong vòng tròn nhấn */
#ptHost .msgs:has(.project-chat-empty){justify-content:center!important}
#ptHost .project-chat-empty{margin:auto!important;text-align:center;max-width:420px;display:flex;flex-direction:column;align-items:center;gap:6px}
#ptHost .chat-empty-mark{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--t-acc-soft);color:var(--t-acc-tx);font-size:18px;margin-bottom:6px}
#ptHost .chat-empty-title{font-size:17px!important;font-weight:600;color:var(--t-tx)}
#ptHost .chat-empty-text{font-size:15px!important;color:var(--t-tx2)!important;line-height:1.6}
/* ==== UI vòng 3 (09/11): /memory + /personal-info ==== */
/* 1. Thẻ "Bảo vệ tài khoản": cùng padding 22px như các thẻ khác, tiêu đề 17px, nút chính + nút phụ viền trung tính */
html body #account-protect > .card-body{padding:22px!important}
html body #account-protect .ui-section-title,.home-provider-card .card-body > div:first-child h2,.home-provider-card .ui-section-title{font-size:17px!important;font-weight:600!important;color:var(--t-tx)}
html body #account-protect .alert-warning{background:var(--t-elev)!important;border:1px solid var(--t-bd2)!important;border-left:3px solid #d97706!important;color:var(--t-tx)!important;border-radius:10px!important;font-size:14px!important;padding:10px 12px!important}
html body #account-protect .d-flex.gap-2{gap:8px!important}
html body #account-protect .btn-outline-danger{background:transparent!important;border:1px solid var(--t-bd2)!important;color:var(--t-tx)!important}
html body #account-protect .btn-outline-danger:hover,html body #account-protect .btn-outline-danger:focus-visible{border-color:var(--t-danger)!important;color:var(--t-danger)!important;background:var(--t-danger-soft)!important}
html body #account-protect .small.text-secondary{font-size:14px!important;margin-top:10px!important}
/* 2. Bảng tài khoản đăng nhập: tên nhà cung cấp viết hoa đầu, dòng thoáng, nút Gỡ nhẹ */
.home-provider-table td:first-child .fw-semibold{text-transform:capitalize}
.home-provider-table td,.home-provider-table th{padding:12px 10px!important;vertical-align:middle}
.home-provider-table .btn-outline-danger,.home-provider-table .btn-unlink{background:transparent!important;border:1px solid var(--t-bd2)!important;color:var(--t-tx2)!important}
.home-provider-table .btn-outline-danger:hover,.home-provider-table .btn-unlink:hover{border-color:var(--t-danger)!important;color:var(--t-danger)!important}
/* ==== UI vòng 4 (09/11): /system ==== */
/* 1. Menu admin: chữ thường câu, 14px, không viết hoa toàn bộ */
.admin-side .item,.admin-side .item span,.page-admin .side .item,.page-admin .side .item span{text-transform:none!important;letter-spacing:0!important;font-size:14px!important;font-weight:500}
.page-admin .side .grouplbl,.admin-side .grouplbl{font-size:12px!important}
/* 2. Thẻ provider: bỏ vạch xanh dày bên trái, dùng viền mảnh + chấm trạng thái */
.page-admin [class*="provider-card"]{border-left-width:1px!important;border-left-color:var(--t-bd)!important;box-shadow:none!important}
/* 3. Lưới tổng quan: thẻ cao theo nội dung, không kéo dài để trống */
.sys-ov-grid{align-items:start}
/* 4. Nhãn ô nhập trong /system/config gọn, 13px chữ phụ */
.page-admin .form-label{font-size:13px!important;font-weight:600;color:var(--t-tx2)!important;margin-bottom:6px}
.page-admin .provider-card::before{display:none!important}
.page-admin .provider-card{background:var(--t-card)!important}
:root[data-bs-theme="light"] .page-admin .provider-status{color:#15803d!important;background:rgba(21,128,61,.08)!important;border-color:rgba(21,128,61,.3)!important}
html body.page-admin .btn span,html body.page-admin .admin-security-badge,html body.page-admin .ai-summary-item span,html body.page-admin .ai-summary-note,html body.page-admin .provider-meta-line span,html body.page-admin .provider-status,html body.page-admin .form-check-label,html body.page-admin .admin-section-title,html body.page-admin .field-hint{font-size:13px!important}
.eywal-projects .pcard .meta:not(:has(*)){display:none!important}
/* ==== Hướng dẫn bảo vệ tài khoản (10/11) ==== */
.ap-guide-link{font-size:15px!important;font-weight:500;color:var(--t-acc-tx)!important;text-decoration:none;min-height:40px}
.ap-guide-link:hover{text-decoration:underline}
#apGuideModal .modal-title{font-size:18px!important;font-weight:600}
.ap-guide{font-size:15px;line-height:1.6;color:var(--t-tx)}
.ap-guide h3{font-size:16px!important;font-weight:600!important;margin:16px 0 6px;color:var(--t-tx)}
.ap-guide h3:first-child{margin-top:0}
.ap-guide ol{margin:0;padding-left:22px}
.ap-guide li{margin:2px 0}
.ap-guide p{margin:0;color:var(--t-tx)}
/* Nút đóng modal (X): vẽ bằng mask theo màu chữ, đúng cả 2 theme (ảnh nền Bootstrap bị rule reset nút xoá) */
html body .btn-close{position:relative;width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;margin:-8px -8px -8px auto!important;background:none!important;border:0!important;border-radius:8px!important;opacity:1!important;filter:none!important;color:var(--t-tx2)!important;box-shadow:none!important}
html body .btn-close::before{content:"";position:absolute;inset:0;margin:auto;width:14px;height:14px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 1l14 14M15 1L1 15' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 1l14 14M15 1L1 15' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
html body .btn-close:hover{background:var(--t-elev)!important;color:var(--t-tx)!important}

/* Mã kết nối dự án (trang dự án → Ứng dụng & đăng nhập) */
.pd-connect{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--t-elev);border-radius:12px;padding:12px 14px}
.pd-connect-main{min-width:0}
.pd-connect-label{font-size:12px;color:var(--t-tx2);margin-bottom:4px}
.pd-connect-code{font-size:14px;color:var(--t-tx);background:transparent;padding:0;word-break:break-all;user-select:all}
.pd-connect-hint{font-size:12.5px;color:var(--t-tx2);line-height:1.55;margin:8px 2px 14px}
.pd-connect-steps{margin:8px 0 0;padding-left:18px}
.pd-connect-steps li{margin-bottom:6px}
.pd-connect-steps code{word-break:break-all}
/* ==== Theo eywal-core (11/11): màn chào, tab chat dự án không cuộn thừa, nút xuống cuối ≥13px ==== */
html body .home-sub{font-size:15px!important;line-height:1.5!important;color:var(--t-tx2)!important;text-align:center!important;max-width:560px;margin-left:auto!important;margin-right:auto!important}
html body .home-chips{display:flex!important;justify-content:center!important;flex-wrap:wrap;gap:8px!important}
@media (max-width:767.98px){html body .home-sub{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding:0 8px}html body .home-chips{flex-wrap:nowrap}}
html body .content:has([data-project-tab="chat"]),html body .content[data-project-tab="chat"]{padding-bottom:0!important}
html body [data-project-tab="chat"] .eywal-pd,html body .content[data-project-tab="chat"] .eywal-pd{padding-bottom:0!important}
.ey-chat-surface .ey-chat-jump{font-size:13px!important}
