/**
 * Art Design Pro inspired UI for 用户端
 * soft cards · light sidebar · rounded · breathable
 * ref: https://github.com/Daymychen/art-design-pro
 */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');

:root{
  --ad-primary:#5d87ff;
  --ad-primary-hover:#4a74ef;
  --ad-primary-soft:#ecf2ff;
  --ad-primary-soft2:#dbe6ff;
  --ad-success:#13deb9;
  --ad-success-bg:#e6fffa;
  --ad-warning:#ffae1f;
  --ad-warning-bg:#fff6e5;
  --ad-danger:#fa896b;
  --ad-danger-bg:#fef0ee;
  --ad-info:#539bff;
  --ad-info-bg:#ebf3fe;
  --ad-bg:#f0f2f5;
  --ad-card:#ffffff;
  --ad-text:#2a3547;
  --ad-text-2:#5a6a85;
  --ad-text-3:#7c8fac;
  --ad-border:#eaeef4;
  --ad-radius:12px;
  --ad-radius-sm:8px;
  --ad-shadow:0 2px 8px rgba(42,53,71,.04), 0 1px 2px rgba(42,53,71,.03);
  --ad-shadow-md:0 8px 24px rgba(42,53,71,.06);
  --ad-side-w:236px;
  --ad-header-h:56px;
  --ad-font:'DM Sans','Noto Sans SC',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --ad-diff-card-bg:#f7f9fc;
  --ad-diff-card-bd:#c5ced9;
  --ad-diff-card-hd:#eef2f7;
  --ad-diff-card-fg:#2a3547;
  --ad-diff-add-bg:rgba(19,222,185,.12);
  --ad-diff-del-bg:rgba(250,137,107,.12);
  --ad-diff-add-bar:#13deb9;
  --ad-diff-del-bar:#fa896b;
}
html[data-theme="dark"]{
  --ad-primary:#6b93ff;
  --ad-primary-hover:#8aabff;
  --ad-primary-soft:#1e2a44;
  --ad-primary-soft2:#2a3a5c;
  --ad-success:#13deb9;
  --ad-success-bg:#12352f;
  --ad-warning:#ffae1f;
  --ad-warning-bg:#3a2e16;
  --ad-danger:#fa896b;
  --ad-danger-bg:#3a221c;
  --ad-info:#539bff;
  --ad-info-bg:#1a2a40;
  --ad-bg:#12151c;
  --ad-card:#1a1f2a;
  --ad-text:#e6ebf5;
  --ad-text-2:#a8b3c7;
  --ad-text-3:#7c8fac;
  --ad-border:#2a3140;
  --ad-shadow:0 2px 8px rgba(0,0,0,.25);
  --ad-shadow-md:0 8px 24px rgba(0,0,0,.35);
  --ad-diff-card-bg:#1e2430;
  --ad-diff-card-bd:#3d4658;
  --ad-diff-card-hd:#252b38;
  --ad-diff-card-fg:#d7dde8;
  --ad-diff-add-bg:rgba(61,214,140,.14);
  --ad-diff-del-bg:rgba(255,107,107,.14);
  --ad-diff-add-bar:#3dd68c;
  --ad-diff-del-bar:#ff6b6b;
}

.tc-icon-btn .ad-ico-sun,.tc-icon-btn .ad-ico-moon{display:block}
html[data-theme="dark"] #ad-theme-toggle .ad-ico-sun{display:none!important}
html[data-theme="dark"] #ad-theme-toggle .ad-ico-moon{display:block!important}
html:not([data-theme="dark"]) #ad-theme-toggle .ad-ico-moon{display:none!important}
html:not([data-theme="dark"]) #ad-theme-toggle .ad-ico-sun{display:block!important}
a{color:var(--ad-primary)}
a:hover{color:var(--ad-primary-hover);text-decoration:none}

/* ========== Shell layout ========== */
.lyear-layout-web,.lyear-layout-container{background:var(--ad-bg)!important;min-height:100%}
.lyear-layout-sidebar{
  background:#eef1f6!important;
  border-right:1px solid var(--ad-border)!important;
  width:var(--ad-side-w)!important;box-shadow:none!important;
}
.lyear-layout-sidebar::after,.lyear-layout-sidebar .sidebar-header::after{display:none!important}
.sidebar-header{
  height:var(--ad-header-h)!important;display:flex!important;align-items:center!important;
  justify-content:center!important;padding:0 18px!important;
  border-bottom:1px solid var(--ad-border)!important;background:#eef1f6!important;
}
.sidebar-header a{display:flex;align-items:center;justify-content:center;gap:0;width:100%;min-height:40px}
.sidebar-header img{max-height:36px!important;max-width:168px!important;width:auto!important;display:block!important;margin:0 auto}
.sidebar-header .ad-brand{display:none!important}
.lyear-layout-sidebar-info{background:#eef1f6!important;padding:10px 10px 16px!important}
.sidebar-main{padding:0!important}
.nav-drawer{padding:0!important;margin:0!important}
.nav-drawer > li{margin:3px 0!important}
.nav-drawer > li > a{
  position:relative!important;display:flex!important;align-items:center!important;gap:12px!important;
  height:44px!important;padding:0 14px!important;margin:0!important;
  border-radius:var(--ad-radius-sm)!important;color:var(--ad-text-2)!important;
  font-size:14px!important;font-weight:500!important;background:transparent!important;
  transition:all .2s ease;
}
.nav-drawer > li > a > i{
  position:static!important;left:auto!important;top:auto!important;transform:none!important;
  width:22px!important;min-width:22px!important;height:auto!important;line-height:1!important;margin:0!important;
  font-size:20px!important;color:var(--ad-text-3)!important;flex-shrink:0;
  display:inline-flex!important;align-items:center;justify-content:center;
}
.nav-drawer > li > a > i::before{display:inline-block!important;font-size:20px!important;line-height:1!important}
.nav-drawer > li > a > span{margin:0!important;line-height:1.2!important}
.nav-drawer > li > a:hover{
  background:var(--ad-primary-soft)!important;color:var(--ad-primary)!important;
}
.nav-drawer > li > a:hover > i{color:var(--ad-primary)!important}
/* 选中：浅蓝底 + 主色字（禁止白底白字） */
.nav-drawer > li.active > a{
  background:var(--ad-primary-soft)!important;color:var(--ad-primary)!important;
  box-shadow:none!important;font-weight:600!important;
  border:1px solid var(--ad-primary-soft2)!important;
}
.nav-drawer > li.active > a > i{color:var(--ad-primary)!important}
.nav-drawer > li.open:not(.active) > a{
  background:transparent!important;color:var(--ad-primary)!important;box-shadow:none!important;
}
.nav-drawer > li.open:not(.active) > a > i{color:var(--ad-primary)!important}
.nav-drawer > li.nav-item-has-subnav > a::after{display:none!important}
.nav-drawer .nav-subnav{display:none!important}
/* 侧栏分组标题（不加分割线） */
.nav-drawer > li.tc-nav-group{
  list-style:none!important;
  position:relative!important;
  margin:12px 12px 2px!important;
  padding:4px 4px 4px!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#8b97ab!important;
  pointer-events:none;
  border:0!important;
  background:transparent!important;
  height:auto!important;
  line-height:1.2!important;
}
.nav-drawer > li.tc-nav-group::before{display:none!important;content:none!important;border:0!important}
.nav-drawer > li.tc-nav-group.tc-nav-first{margin-top:6px!important}
.sidebar-footer{border-top:1px solid var(--ad-border)!important;padding:14px!important;background:#eef1f6!important}
.sidebar-footer .copyright{margin:0;font-size:12px;color:var(--ad-text-3);text-align:center}

/* iframe 内页：禁止继承壳层侧栏偏移 */
body.ad-iframe,
body.ad-iframe html{
  margin:0!important;padding:0!important;left:auto!important;right:auto!important;
  background:var(--ad-bg)!important;min-height:100%;
}
body.ad-iframe .lyear-layout-content,
body.ad-iframe .lyear-layout-header{display:none!important}
body.ad-iframe .tc-work{width:100%!important;max-width:none!important;margin:0!important;padding:0!important}

/* Header — 只用 padding-left，禁止再设 left（否则和原版 padding-left:240px 叠成双倍偏移） */
.lyear-layout-header{
  position:fixed!important;top:0!important;right:0!important;left:0!important;
  height:var(--ad-header-h)!important;background:#fff!important;
  border-bottom:1px solid var(--ad-border)!important;
  box-shadow:none!important;
  padding-left:var(--ad-side-w)!important;padding-right:0!important;padding-top:0!important;padding-bottom:0!important;
  z-index:4!important;
}
.lyear-layout-header .navbar{
  height:var(--ad-header-h)!important;min-height:var(--ad-header-h)!important;
  padding:0 20px!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  flex-wrap:nowrap!important;
  background:transparent!important;box-shadow:none!important;
}
.tc-top-left{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.lyear-aside-toggler{
  width:38px!important;height:38px!important;min-width:38px!important;border-radius:10px!important;
  border:1px solid var(--ad-border)!important;padding:0!important;margin:0!important;
  display:inline-flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  gap:5px!important;cursor:pointer;background:#fff!important;transition:.2s;box-sizing:border-box!important;
}
.lyear-aside-toggler:hover{border-color:var(--ad-primary)!important;background:var(--ad-primary-soft)!important}
.lyear-aside-toggler .lyear-toggler-bar,
.lyear-toggler-bar{
  display:block!important;width:16px!important;height:2px!important;min-height:2px!important;
  background:#5a6a85!important;background-color:#5a6a85!important;border-radius:2px!important;
  margin:0!important;opacity:1!important;visibility:visible!important;
}
.lyear-aside-toggler .lyear-toggler-bar:nth-child(2){width:12px!important}
.lyear-aside-toggler:hover .lyear-toggler-bar:nth-child(2){width:16px!important}
.tc-crumb{margin:0;font-size:14px;color:var(--ad-text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-crumb b{color:var(--ad-text);font-weight:600}
.tc-top-right{
  display:flex;align-items:center;gap:8px;list-style:none;margin:0;padding:0;
  flex:0 0 auto;float:none!important;position:relative!important;
}
.tc-top-right > li{float:none!important;list-style:none}
.tc-icon-btn{
  width:38px;height:38px;border-radius:10px;border:1px solid var(--ad-border);
  background:#fff;color:var(--ad-text-2);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:.2s;
}
.tc-icon-btn:hover{color:var(--ad-primary);border-color:var(--ad-primary-soft2);background:var(--ad-primary-soft)}
.tc-user-chip{
  display:inline-flex!important;align-items:center;gap:8px;padding:4px 10px 4px 4px!important;
  border-radius:999px!important;border:1px solid var(--ad-border)!important;
  background:#fff!important;color:var(--ad-text)!important;font-size:13px!important;font-weight:500;
}
.tc-user-chip img{width:28px;height:28px;border-radius:50%;object-fit:cover}
.tc-user-chip::after{margin-left:2px}
.dropdown-menu{border:1px solid var(--ad-border)!important;border-radius:10px!important;box-shadow:var(--ad-shadow-md)!important;padding:6px!important}
.dropdown-item{border-radius:6px!important;font-size:13px!important;padding:8px 12px!important;color:var(--ad-text-2)!important}
.dropdown-item:hover{background:var(--ad-primary-soft)!important;color:var(--ad-primary)!important}

/* Content + multitabs — 只用 padding-left，禁止 left+width:100% 导致右溢出裁切 */
.lyear-layout-content{
  position:absolute!important;top:0!important;left:0!important;right:0!important;
  width:100%!important;height:100%!important;
  background:var(--ad-bg)!important;
  padding-top:var(--ad-header-h)!important;
  padding-left:var(--ad-side-w)!important;
  padding-right:0!important;padding-bottom:0!important;
  box-sizing:border-box!important;
}
.mt-nav-bar,
.mt-wrapper > .mt-nav-bar{
  display:none!important;
  height:0!important;min-height:0!important;padding:0!important;margin:0!important;
  overflow:hidden!important;border:0!important;visibility:hidden!important;
}
#iframe-content{background:var(--ad-bg);height:100%;width:100%}
#iframe-content iframe{width:100%!important;height:100%!important;border:0!important}

/* collapsed — 仅桌面；手机端勿压成 60px 图标条 */
@media (min-width: 1025px){
  .lyear-layout-sidebar-close .lyear-layout-header,
  .lyear-layout-sidebar-close .lyear-layout-content{
    padding-left:60px!important;left:0!important;
  }
  .lyear-layout-sidebar-close .lyear-layout-sidebar{width:60px!important}
  .lyear-layout-sidebar-close .nav-drawer > li > a{
    justify-content:center!important;padding:0!important;gap:0!important;
  }
  .lyear-layout-sidebar-close .nav-drawer > li > a > span{display:none!important}
  .lyear-layout-sidebar-close .nav-drawer > li.tc-nav-group{display:none!important}
  .lyear-layout-sidebar-close .sidebar-header img{max-width:36px!important;max-height:28px!important}
  .lyear-layout-sidebar-close .lyear-layout-sidebar:hover{width:var(--ad-side-w)!important}
  .lyear-layout-sidebar-close .lyear-layout-sidebar:hover .nav-drawer > li > a{
    justify-content:flex-start!important;padding:0 14px!important;gap:12px!important;
  }
  .lyear-layout-sidebar-close .lyear-layout-sidebar:hover .nav-drawer > li > a > span{display:inline!important}
  .lyear-layout-sidebar-close .lyear-layout-sidebar:hover .nav-drawer > li.tc-nav-group{display:list-item!important}
  .lyear-layout-sidebar-close .lyear-layout-sidebar:hover .sidebar-header img{max-width:168px!important;max-height:36px!important}
}

/* ========== Buttons / forms ========== */
.btn{border-radius:8px!important;font-weight:500!important;font-size:13px!important;padding:7px 14px!important}
.btn-primary,.btn-blue{background:var(--ad-primary)!important;border-color:var(--ad-primary)!important;color:#fff!important;box-shadow:0 4px 10px rgba(93,135,255,.28)}
.btn-primary:hover,.btn-blue:hover{background:var(--ad-primary-hover)!important;border-color:var(--ad-primary-hover)!important}
.btn-default,.btn-secondary{background:var(--ad-card)!important;border:1px solid var(--ad-border)!important;color:var(--ad-text-2)!important;box-shadow:none}
.btn-default:hover{border-color:var(--ad-primary)!important;color:var(--ad-primary)!important;background:var(--ad-primary-soft)!important}
.btn-xs{padding:3px 8px!important;font-size:12px!important;border-radius:6px!important}
.btn-sm{padding:5px 12px!important}
.form-control,
.custom-select,
select.form-control,
select.custom-select,
select{
  border-radius:8px!important;border:1px solid var(--ad-border)!important;height:40px!important;
  font-size:13px!important;color:var(--ad-text)!important;background:var(--ad-card)!important;
  box-shadow:none!important;
}
.custom-select,
select.custom-select,
select.form-control-sm,
.custom-select.form-control-sm{
  /* bootstrap custom-select 默认白底，强制跟主题 */
  background-color:var(--ad-card)!important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%237c8fac' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e")!important;
  background-repeat:no-repeat!important;
  background-position:right .75rem center!important;
  background-size:8px 10px!important;
  color:var(--ad-text)!important;
  border:1px solid var(--ad-border)!important;
}
.form-control:focus,
.custom-select:focus,
select:focus{border-color:var(--ad-primary)!important;box-shadow:0 0 0 3px rgba(93,135,255,.15)!important}
.custom-select option,
select option{background:var(--ad-card);color:var(--ad-text)}
.table{background:var(--ad-card);color:var(--ad-text)}
.table thead th{border-top:none!important;border-bottom:1px solid var(--ad-border)!important;color:var(--ad-text-3)!important;font-weight:600!important;font-size:12px!important;background:var(--ad-bg)!important}
.table td{border-color:var(--ad-border)!important;vertical-align:middle!important;font-size:13px;color:var(--ad-text)}
.table-striped tbody tr:nth-of-type(odd){background:var(--ad-bg)}
.table-hover tbody tr:hover{background:var(--ad-primary-soft)!important}
.card{
  border:none!important;border-radius:var(--ad-radius)!important;box-shadow:var(--ad-shadow)!important;
  background:var(--ad-card)!important;margin-bottom:16px;
}
.card-header,.card-toolbar{background:transparent!important;border-bottom:1px solid var(--ad-border)!important;padding:14px 18px!important}
.card-title{font-size:15px!important;font-weight:600!important;color:var(--ad-text)!important;margin:0}
.card-body{padding:18px!important}
.badge-success{background:var(--ad-success)!important}
.badge-danger{background:var(--ad-danger)!important}
.badge-warning{background:var(--ad-warning)!important;color:#fff!important}
.progress{height:8px!important;border-radius:99px!important;background:#eef2f6!important;overflow:hidden;box-shadow:none!important}
.progress-bar{background:linear-gradient(90deg,var(--ad-primary),#8eacff)!important;border-radius:99px!important;box-shadow:none!important;font-size:0!important}

/* jquery-confirm — compact modern dialog */
.jconfirm{perspective:none!important}
.jconfirm .jconfirm-bg{background:rgba(42,53,71,.45)!important;opacity:1!important}
.jconfirm .jconfirm-box{
  border-radius:16px!important;box-shadow:0 20px 50px rgba(42,53,71,.18)!important;
  padding:0!important;overflow:hidden!important;border:1px solid var(--ad-border)!important;
  max-width:420px!important;
}
.jconfirm .jconfirm-box div.jconfirm-title-c{
  padding:18px 20px 8px!important;margin:0!important;
}
.jconfirm .jconfirm-title-c .jconfirm-title{
  font-size:16px!important;font-weight:650!important;color:var(--ad-text)!important;
}
.jconfirm .jconfirm-content-pane{margin-bottom:0!important}
.jconfirm .jconfirm-content{
  padding:4px 20px 8px!important;font-size:13px!important;color:var(--ad-text-2)!important;
  min-height:0!important;
}
.jconfirm .jconfirm-content .form-control{margin-top:4px}
.jconfirm .jconfirm-buttons{
  padding:12px 16px 16px!important;float:none!important;display:flex!important;
  justify-content:flex-end!important;gap:8px!important;border-top:1px solid var(--ad-border);
  background:#fafbfd;
}
.jconfirm .jconfirm-buttons button{
  border-radius:8px!important;padding:8px 16px!important;font-weight:500!important;
  text-transform:none!important;margin:0!important;min-width:84px;
}
.jconfirm .jconfirm-buttons .btn-blue,
.jconfirm .jconfirm-buttons .btn-default{box-shadow:none!important}
.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons{float:none!important}

/* 手机弹窗：中间灵动岛，向两边展开，宽度别太宽 */
@media (max-width:1024px){
  body .modal-dialog,
  body .modal .modal-dialog,
  .modal-dialog.modal-dialog-centered,
  .modal-dialog{
    margin:16px auto!important;
    max-width:min(320px,88vw)!important;
    width:min(320px,88vw)!important;
    display:flex!important;
    align-items:center!important;
    min-height:calc(100% - 32px)!important;
    left:auto!important;right:auto!important;
  }
  body .modal.fade .modal-dialog{
    transform:translate(0,0) scaleX(.36) scaleY(.88)!important;
    transform-origin:center center!important;
    transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .28s ease!important;
    opacity:.55!important;
  }
  body .modal.show .modal-dialog,
  body .modal.in .modal-dialog{
    transform:translate(0,0) scaleX(1) scaleY(1)!important;
    opacity:1!important;
  }
  body .modal-content,
  .modal-content{
    border-radius:22px!important;
    overflow:hidden!important;
    width:100%!important;
    border:0!important;
    box-shadow:0 18px 48px rgba(15,23,42,.28)!important;
  }
  .jconfirm{
    padding:12px!important;
  }
  .jconfirm .jconfirm-cell{
    vertical-align:middle!important;
  }
  .jconfirm .jconfirm-box,
  .jconfirm.jconfirm-white .jconfirm-box,
  .jconfirm .jconfirm-box.jconfirm-type-blue{
    max-width:min(320px,88vw)!important;
    width:min(320px,88vw)!important;
    margin-left:auto!important;
    margin-right:auto!important;
    border-radius:22px!important;
    animation:mnIslandPop .3s cubic-bezier(.2,.8,.2,1)!important;
    transform-origin:center center!important;
  }
  .jconfirm .jconfirm-buttons{
    flex-wrap:wrap!important;
  }
  .jconfirm .jconfirm-buttons button{min-width:0;flex:1}
  .fm-fname{cursor:pointer;color:var(--ad-primary);font-weight:500}
  .fm-fname:hover{text-decoration:underline}
}
@keyframes mnIslandPop{
  from{transform:scaleX(.32) scaleY(.84);opacity:0;border-radius:999px}
  to{transform:scaleX(1) scaleY(1);opacity:1;border-radius:22px}
}

/* bootstrap-notify toast */
[data-notify="container"].alert,
[data-notify="container"].mn-toast{
  border:none!important;border-radius:12px!important;box-shadow:0 12px 32px rgba(42,53,71,.16)!important;
  padding:12px 16px!important;display:flex!important;align-items:center!important;gap:10px!important;
  width:auto!important;min-width:0!important;max-width:360px!important;
  font-size:13px!important;font-weight:500!important;
  backdrop-filter:blur(8px);animation:adFadeUp .28s ease;
  float:none!important;margin:0!important;
}
[data-notify="container"].alert-success{background:#e8faf5!important;color:#0a8f7a!important}
[data-notify="container"].alert-info{background:#ebf3fe!important;color:#2f6fed!important}
[data-notify="container"].alert-warning{background:#fff6e5!important;color:#9a6b10!important}
[data-notify="container"].alert-danger{background:#fef0ee!important;color:#d14343!important}
[data-notify="container"] [data-notify="icon"]{font-size:20px!important;margin:0!important;flex-shrink:0}
[data-notify="container"] [data-notify="message"]{flex:1;min-width:0;line-height:1.4}
[data-notify="container"] .close{
  position:static!important;order:3;margin-left:auto!important;opacity:.55;font-size:18px;padding:0 2px;
  text-shadow:none!important;line-height:1;flex-shrink:0;
}
[data-notify="container"] .progress{display:none!important}

/* 手机消息弹窗：顶栏居中灵动岛，中间向两边展开，别太宽 */
@media (max-width:768px){
  [data-notify="container"].mn-toast,
  [data-notify="container"].mn-toast-island,
  [data-notify="container"].alert{
    left:50%!important;
    right:auto!important;
    transform:translateX(-50%)!important;
    width:auto!important;
    max-width:min(280px,78vw)!important;
    min-width:0!important;
    padding:10px 14px!important;
    border-radius:999px!important;
    box-shadow:0 10px 28px rgba(15,23,42,.22)!important;
    font-size:12px!important;
    gap:8px!important;
  }
  [data-notify="container"].mn-toast-island [data-notify="icon"]{font-size:18px!important}
  [data-notify="container"].mn-toast-island .close{display:none!important}
  .animated.mnIslandIn{
    animation-name:mnToastIslandIn!important;
    animation-duration:.32s!important;
    animation-timing-function:cubic-bezier(.2,.8,.2,1)!important;
  }
  .animated.mnIslandOut{
    animation-name:mnToastIslandOut!important;
    animation-duration:.22s!important;
    animation-timing-function:ease-in!important;
  }
}
@keyframes mnToastIslandIn{
  from{opacity:0;transform:translateX(-50%) scaleX(.28) scaleY(.75);border-radius:999px}
  to{opacity:1;transform:translateX(-50%) scaleX(1) scaleY(1);border-radius:999px}
}
@keyframes mnToastIslandOut{
  from{opacity:1;transform:translateX(-50%) scaleX(1)}
  to{opacity:0;transform:translateX(-50%) scaleX(.35) scaleY(.8)}
}

/* ========== Workbench pages ========== */
.tc-work{padding:0;min-height:100%;width:100%}
.tc-work-bar{
  background:var(--ad-card);border-bottom:1px solid var(--ad-border);
  padding:16px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.tc-work-bar .crumb{margin:0 0 4px;font-size:12px;color:var(--ad-text-3)}
.tc-work-bar h1{margin:0;font-size:18px;font-weight:600;color:var(--ad-text)}
.tc-work-body{
  padding:18px 22px 32px;width:100%;max-width:none;
  animation:adFadeUp .35s ease both;
}
@keyframes adFadeUp{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:none}
}
@keyframes adFadeIn{from{opacity:0}to{opacity:1}}
.tc-work-panel{
  background:var(--ad-card);border-radius:var(--ad-radius);box-shadow:var(--ad-shadow);
  border:1px solid var(--ad-border);overflow:hidden;margin-bottom:16px;
  transition:box-shadow .2s,transform .2s;
}
.tc-work-panel:hover{box-shadow:var(--ad-shadow-md)}
.tc-work-panel-hd{
  padding:14px 18px;font-size:14px;font-weight:600;color:var(--ad-text);
  border-bottom:1px solid var(--ad-border);background:var(--ad-bg);
}
.tc-work-panel-bd{padding:18px}
.tc-form-row{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;max-width:none}
.tc-form-label{width:120px;flex-shrink:0;padding-top:10px;font-size:13px;font-weight:500;color:var(--ad-text-2);text-align:right}
.tc-form-label.required::before{content:"*";color:var(--ad-danger);margin-right:4px}
.tc-form-ctrl{flex:1;min-width:0}
.tc-form-ctrl .help{display:block;margin-top:6px;font-size:12px;color:var(--ad-text-3)}
.tc-form-actions{padding-left:136px;margin-top:8px}
.tc-alert{
  padding:12px 14px;border-radius:10px;margin-bottom:16px;font-size:13px;line-height:1.6;
  background:var(--ad-info-bg);color:#3a6ea5;border:1px solid #d6e6fb;
}
.tc-alert.warning{background:var(--ad-warning-bg);color:#9a6b10;border-color:#f5e2b8}
.tc-alert.success{background:var(--ad-success-bg);color:#0a8f7a;border-color:#b8efe4}
.tc-split{
  display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.9fr);gap:16px;align-items:start;
  width:100%;
}
.tc-split > *{align-self:start;width:100%}
.tc-split > .tc-work-panel{margin-bottom:0;height:auto}
.tc-side-card{
  background:var(--ad-card);border-radius:var(--ad-radius);box-shadow:var(--ad-shadow);
  border:1px solid var(--ad-border);overflow:hidden;margin-bottom:16px;
  animation:adFadeUp .4s ease both;
}
.tc-side-card:nth-child(2){animation-delay:.06s}
.tc-side-card:nth-child(3){animation-delay:.12s}
.tc-side-card:last-child{margin-bottom:0}
.tc-side-card-hd{
  padding:12px 16px;font-size:13px;font-weight:600;color:var(--ad-text);
  border-bottom:1px solid var(--ad-border);background:var(--ad-bg);display:flex;align-items:center;gap:8px;
}
.tc-side-card-hd i{color:var(--ad-primary);font-size:18px}
.tc-side-card-bd{padding:14px 16px;background:var(--ad-card);color:var(--ad-text)}
.tc-side-list{list-style:none;margin:0;padding:0}
.tc-side-list li{
  display:flex;gap:10px;align-items:flex-start;padding:8px 0;
  border-bottom:1px dashed var(--ad-border);font-size:13px;color:var(--ad-text-2);line-height:1.5;
}
.tc-side-list li:last-child{border-bottom:none;padding-bottom:0}
.tc-side-list li i{color:var(--ad-primary);margin-top:2px;flex-shrink:0}
.tc-kv{display:grid;grid-template-columns:88px 1fr;gap:8px 10px;font-size:13px}
.tc-kv .k{color:var(--ad-text-3)}
.tc-kv .v{color:var(--ad-text);font-weight:500;word-break:break-all}
.tc-stat-pill{
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;
  background:var(--ad-primary-soft);color:var(--ad-primary);font-size:12px;font-weight:600;margin:4px 4px 0 0;
}
.tc-quick-links{display:flex;flex-wrap:wrap;gap:8px}
.tc-quick-links a{
  display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;
  background:var(--ad-bg);border:1px solid var(--ad-border);color:var(--ad-text-2)!important;
  font-size:12px;font-weight:500;text-decoration:none!important;transition:all .2s;
}
.tc-quick-links a:hover{background:var(--ad-primary-soft);border-color:var(--ad-primary-soft2);color:var(--ad-primary)!important;transform:translateY(-1px)}
.tc-quick-links a i{font-size:16px;color:var(--ad-primary)}
/* SSL status cards */
.tc-ssl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.tc-ssl-stat{
  background:var(--ad-bg);border:1px solid var(--ad-border);border-radius:10px;padding:14px 16px;
  transition:transform .2s,box-shadow .2s;
}
.tc-ssl-stat:hover{transform:translateY(-2px);box-shadow:var(--ad-shadow)}
.tc-ssl-stat .lbl{font-size:12px;color:var(--ad-text-3);margin-bottom:6px}
.tc-ssl-stat .val{font-size:14px;font-weight:600;color:var(--ad-text);word-break:break-all}
.tc-ssl-stat .val .custom-switch{display:inline-block;margin:0}
.tc-tabs{display:flex;gap:4px;border-bottom:1px solid var(--ad-border);margin-bottom:16px;padding:0}
.tc-tabs .nav-link{
  border:none!important;background:transparent!important;color:var(--ad-text-2)!important;
  font-weight:500;padding:10px 16px!important;border-radius:8px 8px 0 0!important;
  position:relative;transition:color .2s;
}
.tc-tabs .nav-link.active{
  color:var(--ad-primary)!important;font-weight:600;
}
.tc-tabs .nav-link.active::after{
  content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;
  background:var(--ad-primary);border-radius:2px;animation:adFadeIn .25s ease;
}
.tc-editor-wrap textarea.form-control{height:auto!important;min-height:220px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.55}
@media (max-width:1100px){
  .tc-ssl-stats{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:960px){
  .tc-split{grid-template-columns:1fr}
  .tc-work-body{max-width:none}
}
@media (max-width:640px){
  .tc-form-row{flex-direction:column;gap:6px}
  .tc-form-label{width:auto;text-align:left;padding-top:0}
  .tc-form-actions{padding-left:0}
  .tc-ssl-stats{grid-template-columns:1fr}
  .tc-work-body{padding:12px}
}

/* shell mobile */
@media (max-width:1024px){
  .lyear-layout-sidebar{
    position:fixed!important;z-index:20!important;height:100%!important;
    width:min(86vw, var(--ad-side-w))!important;
    max-width:280px!important;
    transform:translateX(-105%)!important;transition:transform .28s ease;
  }
  /* 手机展开必须是完整侧栏，禁止 60px 图标条 */
  body.lyear-layout-sidebar-close .lyear-layout-sidebar,
  body.lyear-layout-sidebar-open .lyear-layout-sidebar{
    width:min(86vw, var(--ad-side-w))!important;
  }
  body.lyear-layout-sidebar-close .lyear-layout-header,
  body.lyear-layout-sidebar-close .lyear-layout-content,
  .lyear-layout-header,.lyear-layout-content{
    padding-left:0!important;left:0!important;
  }
  .lyear-layout-sidebar-open .lyear-layout-sidebar{
    transform:translateX(0)!important;box-shadow:var(--ad-shadow-md)!important;
  }
  .lyear-layout-sidebar-open .nav-drawer > li > a > span{display:inline!important}
  .lyear-layout-sidebar-open .nav-drawer > li.tc-nav-group{display:list-item!important}
  .lyear-aside-toggler{display:inline-flex!important}
  /* 遮罩：点空白关闭菜单 */
  body.lyear-layout-sidebar-open::before{
    content:"";position:fixed;inset:0;z-index:19;
    background:rgba(15,23,42,.42);
  }

  /* 顶栏：强制单行，避免主题/刷新/用户掉到内容区 */
  .lyear-layout-header{
    overflow:hidden!important;z-index:30!important;
  }
  .lyear-layout-header .navbar{
    flex-wrap:nowrap!important;padding:0 10px!important;gap:8px!important;
    width:100%!important;box-sizing:border-box!important;
  }
  .tc-top-left{flex:1;min-width:0;gap:10px}
  .tc-crumb{font-size:13px;max-width:100%}
  .tc-top-right{
    flex:0 0 auto!important;margin:0!important;padding:0!important;
    float:none!important;position:relative!important;top:auto!important;right:auto!important;
    gap:6px;
  }
  .tc-top-right > li{float:none!important;margin:0!important}
  .tc-icon-btn{width:34px;height:34px;border-radius:9px}
  .tc-user-chip{
    padding:3px!important;max-width:40px;overflow:hidden;
  }
  .tc-user-chip span,
  .tc-user-chip::after{display:none!important}
  .tc-user-chip img{width:28px;height:28px;margin:0}
}
@media (max-width:768px){
  .ad-welcome h1{font-size:16px;line-height:1.35;word-break:break-all}
  .ad-welcome{align-items:flex-start}
  .ad-welcome .meta{width:100%}
}

/* ========== Dashboard ==========
   上四卡与下方同宽铺满；不要单独拉高右下造成空壳 */
body.ad-iframe,body.ad-iframe html{height:100%}
.ad-page{
  padding:16px 18px 20px;width:100%!important;max-width:none!important;margin:0!important;
  box-sizing:border-box;display:block;
}
.ad-tech-support{
  margin-top:28px;padding:10px 0 4px;text-align:center;
  font-size:12px;color:var(--ad-text-3);letter-spacing:.02em;
}
.ad-tech-support a{
  color:inherit;font-weight:500;text-decoration:none;
  border-bottom:1px solid rgba(124,143,172,.45);
}
.ad-tech-support a:hover{
  color:var(--ad-text-2);
  border-bottom-color:currentColor;
}
.ad-welcome{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-bottom:14px;width:100%;
}
.ad-welcome h1{margin:0;font-size:18px;font-weight:600;color:var(--ad-text)}
.ad-welcome p{margin:4px 0 0;font-size:13px;color:var(--ad-text-3)}
.ad-welcome .meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--ad-text-2)}
.ad-welcome .meta .chip{
  display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;
  background:#fff;border:1px solid var(--ad-border);box-shadow:var(--ad-shadow);
}
.ad-php-btn{
  background:var(--ad-primary-soft)!important;border:none!important;color:var(--ad-primary)!important;
  font-weight:600!important;padding:2px 8px!important;height:auto!important;
}

/* 同一壳：上四卡 + 下方 永远同宽 */
.ad-shell{
  width:100%!important;max-width:none!important;min-width:0;
  display:flex;flex-direction:column;gap:14px;box-sizing:border-box;
}
.ad-shell > .ad-metrics,
.ad-shell > .ad-workplace{
  width:100%!important;max-width:none!important;min-width:0;box-sizing:border-box;margin:0!important;
}

.ad-metrics{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px;
}
.ad-metric{
  background:var(--ad-card);border-radius:var(--ad-radius);box-shadow:var(--ad-shadow);
  border:1px solid var(--ad-border);padding:16px 16px 14px;
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  transition:transform .2s,box-shadow .2s;min-width:0;width:100%;box-sizing:border-box;
}
.ad-metric:hover{transform:translateY(-2px);box-shadow:var(--ad-shadow-md)}
.ad-metric .lbl{font-size:12px;color:var(--ad-text-3);margin-bottom:6px}
.ad-metric .num{font-size:22px;font-weight:700;color:var(--ad-text);letter-spacing:-.02em;line-height:1.15}
.ad-metric .sub{margin-top:6px;font-size:12px;color:var(--ad-text-3)}
.ad-metric .sub b{color:var(--ad-text-2);font-weight:600}
.ad-metric .ico{
  width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:20px;flex-shrink:0;
}
.ad-metric .ico.blue{background:var(--ad-primary-soft);color:var(--ad-primary)}
.ad-metric .ico.teal{background:var(--ad-success-bg);color:#0bb7a0}
.ad-metric .ico.orange{background:var(--ad-warning-bg);color:#e99a10}
.ad-metric .ico.coral{background:var(--ad-danger-bg);color:var(--ad-danger)}
.ad-metric .bar{margin-top:10px}
.ad-metric .bar .progress{margin:0;height:6px;border-radius:999px;background:#edf1f7}
.ad-metric .bar .progress-bar{border-radius:999px}

/* 下方与上四卡同宽；高度跟内容走，不单独撑高右下 */
.ad-workplace{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  align-items:stretch;
  width:100%;
}
.ad-workplace > .ad-cred-stack,
.ad-workplace > .ad-side-stack{
  min-width:0;width:100%;height:100%;
  display:flex!important;flex-direction:column;gap:12px;
}
.ad-cred-stack .ad-grid-2{
  display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;
}
.ad-cred-stack .ad-card{flex:0 0 auto}
/* 左侧数据库卡片撑满剩余高度，左右底边对齐 */
.ad-cred-stack .ad-card.basxx{
  flex:1 1 auto;display:flex;flex-direction:column;min-height:0;
}
.ad-cred-stack .ad-card.basxx .ad-card-bd{flex:1}
.ad-side-stack > .ad-ai-card{flex:0 0 auto;margin:0}
.ad-side-stack > .ad-mod{flex:1 1 auto;min-height:0}

.ad-grid-2{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:0}
.ad-card{
  background:var(--ad-card);border-radius:var(--ad-radius);box-shadow:var(--ad-shadow);
  border:1px solid var(--ad-border);overflow:hidden;
}
.ad-card-hd{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border-bottom:1px solid var(--ad-border);
}
.ad-card-hd h3{margin:0;font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
.ad-card-hd h3 i{color:var(--ad-primary);font-size:17px}
.ad-card-bd{padding:4px 6px 8px}

.ad-cred-row{
  display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:8px;
  padding:8px 10px;border-radius:8px;margin:2px 4px;
}
.ad-cred-row:hover{background:#f7f9fc}
.ad-cred-row .k{font-size:12px;color:var(--ad-text-3);font-weight:500}
.ad-cred-row .v{font-size:13px;color:var(--ad-text);font-weight:500;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.ad-cred-row .ops{display:flex;gap:2px}
.ad-cred-row .ops button{
  width:28px;height:28px;border:none;background:transparent;border-radius:6px;
  color:var(--ad-text-3);cursor:pointer;
}
.ad-cred-row .ops button:hover{background:var(--ad-primary-soft);color:var(--ad-primary)}

.ad-mod{
  background:var(--ad-card);border-radius:var(--ad-radius);box-shadow:var(--ad-shadow);
  border:1px solid var(--ad-border);overflow:hidden;height:auto!important;
  display:flex!important;flex-direction:column;
}
.ad-mod-hd{padding:12px 14px;border-bottom:1px solid var(--ad-border);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;flex-shrink:0}
.ad-mod-hd h3{margin:0;font-size:14px;font-weight:600}
.ad-ai-card .ad-ai-hint{font-size:11px;color:var(--ad-text-3);font-weight:500}
.ad-ai-dash{
  padding:8px 12px 12px;
  background:linear-gradient(180deg, rgba(93,135,255,.04), transparent 72%);
}
.ad-ai-gauges{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
}
.ad-ai-gauge{text-align:center;min-width:0}
.ad-ai-gauge .ring{
  position:relative;width:64px;height:64px;margin:0 auto 4px;
}
.ad-ai-gauge .ring svg{width:64px;height:64px;display:block;transform:rotate(-90deg)}
.ad-ai-gauge .ring circle{
  fill:none;stroke-width:5.5;stroke-linecap:round;
}
.ad-ai-gauge .ring circle.track{stroke:rgba(124,143,172,.18)}
.ad-ai-gauge .ring circle.prog{
  stroke:var(--ad-primary);
  stroke-dasharray:175.929;
  stroke-dashoffset:175.929;
  transition:stroke-dashoffset .55s ease;
}
.ad-ai-gauge .ring circle.prog.teal{stroke:#0bb7a0}
.ad-ai-gauge .ring circle.prog.amber{stroke:#e99a10}
.ad-ai-gauge .mid{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  pointer-events:none;line-height:1.1;
}
.ad-ai-gauge .mid .num{font-size:14px;font-weight:700;color:var(--ad-text);letter-spacing:-.02em}
.ad-ai-gauge .mid .unit{font-size:10px;color:var(--ad-text-3);margin-top:1px}
.ad-ai-gauge .name{font-size:12px;font-weight:600;color:var(--ad-text);margin-bottom:1px}
.ad-ai-gauge .cap{font-size:11px;color:var(--ad-text-3)}
.ad-ai-gauge.is-off .ring circle.prog{stroke:rgba(124,143,172,.35)}
.ad-ai-gauge.is-off .mid .num{color:var(--ad-text-3);font-weight:600}
.ad-ai-gauge.is-low .ring circle.prog{stroke:var(--ad-danger)}
.ad-ai-gauge.is-low .mid .num{color:var(--ad-danger)}
@media (max-width:768px){
  .ad-workplace > .ad-cred-stack,
  .ad-workplace > .ad-side-stack{height:auto}
  .ad-cred-stack .ad-card.basxx{flex:0 0 auto}
  .ad-ai-gauges{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .ad-ai-gauge .ring,.ad-ai-gauge .ring svg{width:58px;height:58px}
  .ad-ai-gauge .mid .num{font-size:13px}
}
.ad-tabs{display:flex;gap:4px;flex-wrap:wrap}
.ad-tabs a{
  padding:5px 10px;border-radius:8px;font-size:12px;color:var(--ad-text-2);font-weight:500;
  border:1px solid transparent;
}
.ad-tabs a:hover{background:#f5f7fb;color:var(--ad-primary)}
.ad-tabs a.on{background:var(--ad-primary-soft);color:var(--ad-primary);border-color:var(--ad-primary-soft2)}
.ad-mod .act-pane{display:block}
.ad-act-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.ad-act{
  display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;
  border-bottom:1px solid var(--ad-border);border-right:1px solid var(--ad-border);
  transition:background .15s;text-decoration:none!important;color:inherit!important;
}
.ad-act:nth-child(2n){border-right:none}
.ad-act:nth-last-child(-n+2){border-bottom:none}
.ad-act:hover{background:#f7f9fc}
.ad-act .ico{
  width:36px;height:36px;border-radius:10px;background:var(--ad-primary-soft);color:var(--ad-primary);
  display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;
}
.ad-act .name{font-size:13px;font-weight:600;color:var(--ad-text);margin-bottom:2px}
.ad-act .desc{font-size:11px;color:var(--ad-text-3)}
.ad-act .go{margin-left:auto;color:var(--ad-text-3);font-size:16px}

.ad-php-modal-hint{font-size:12px;color:var(--ad-text-3);margin:0 0 10px;line-height:1.5}

@media (max-width:1100px){
  .ad-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ad-workplace{grid-template-columns:1fr}
}
@media (max-width:768px){
  .ad-page{padding:12px}
  .ad-metrics{grid-template-columns:1fr!important}
  .ad-act-grid{grid-template-columns:1fr}
  .ad-act{border-right:none}
  .ad-act:nth-last-child(-n+2){border-bottom:1px solid var(--ad-border)}
  .ad-act:last-child{border-bottom:none}
  .tc-work-body{padding:12px}
  .nav-drawer > li > a{height:42px!important;font-size:13px!important}
}

/* Deploy cards */
.tc-deploy-grid{padding:18px 22px;display:flex;flex-wrap:wrap}
.card-pricing{border-radius:var(--ad-radius)!important;overflow:hidden}
.card-pricing h4{font-weight:600!important}

/* Login — Art Design Pro (split) */
.adp-login{
  min-height:100vh;display:flex;background:#fff;color:var(--ad-text);
}
.adp-login-left{
  flex:1.55;min-width:0;position:relative;
  background:linear-gradient(165deg,#eef2ff 0%,#f3f6fc 42%,#e9eefb 100%);
  display:flex;flex-direction:column;padding:28px 40px 36px;
}
.adp-login-brand{
  display:inline-flex;align-items:center;gap:10px;font-size:16px;font-weight:650;color:#2a3346;
}
.adp-login-brand img{width:28px;height:28px;border-radius:8px;object-fit:cover}
.adp-login-hero{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:24px 12px 8px;max-width:560px;margin:0 auto;width:100%;
}
.adp-login-illu{width:min(100%,420px);margin-bottom:18px}
.adp-login-illu svg{width:100%;height:auto;display:block}
.adp-login-hero h2{
  margin:0 0 10px;font-size:22px;font-weight:700;line-height:1.45;color:#2a3346;letter-spacing:-.01em;
}
.adp-login-hero p{margin:0;font-size:13px;line-height:1.7;color:#7c8fac;max-width:420px}

.adp-login-right{
  flex:1;min-width:320px;max-width:520px;position:relative;
  display:flex;align-items:center;justify-content:center;
  padding:48px 40px 32px;background:#fff;
}
.adp-login-tools{position:absolute;top:20px;right:22px;z-index:30}
.adp-tool{
  width:34px;height:34px;border-radius:10px;border:1px solid #e8edf5;background:#fff;
  color:#7c8fac;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  position:relative;z-index:31;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
}
.adp-tool:hover{color:var(--ad-primary);border-color:#d7e2ff}
.adp-login-panel{width:100%;max-width:360px}
.adp-login-panel h1{margin:0;font-size:28px;font-weight:750;letter-spacing:-.02em;color:#1f2937}
.adp-login-desc{margin:8px 0 28px;font-size:13px;color:#8b97ad}
.adp-field{margin-bottom:14px;position:relative}
.adp-input{
  width:100%;height:46px;border:1px solid #e5eaf2;border-radius:10px;
  background:#f7f9fc;padding:0 14px;font-size:14px;color:#2a3346;outline:none;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
.adp-input:focus{background:#fff;border-color:#5d87ff;box-shadow:0 0 0 3px rgba(93,135,255,.12)}
.adp-field-pwd .adp-input{padding-right:44px}
.adp-eye{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  width:32px;height:32px;border:none;background:transparent;color:#9aa6bc;cursor:pointer;border-radius:8px;
}
.adp-eye:hover{color:#5d87ff;background:rgba(93,135,255,.08)}
.adp-field-code{display:flex;gap:10px;align-items:center}
.adp-field-code .adp-input{flex:1}
.adp-field-code img{
  height:46px;border-radius:10px;border:1px solid #e5eaf2;cursor:pointer;background:#fff;
}

.adp-slider{margin-bottom:14px;user-select:none;-webkit-user-select:none}
.adp-slider-track{
  position:relative;height:46px;border-radius:10px;background:#f0f3f8;border:1px solid #e5eaf2;overflow:hidden;
}
.adp-slider-tip{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:13px;color:#9aa6bc;pointer-events:none;z-index:1;
}
.adp-slider-fill{
  position:absolute;left:0;top:0;bottom:0;width:0;background:rgba(93,135,255,.16);z-index:0;
}
.adp-slider-btn{
  position:absolute;left:2px;top:2px;width:42px;height:40px;border:none;border-radius:8px;
  background:#fff;color:#5d87ff;box-shadow:0 2px 8px rgba(42,51,70,.12);
  display:flex;align-items:center;justify-content:center;cursor:grab;z-index:2;font-size:20px;
}
.adp-slider-btn:active{cursor:grabbing}
.adp-slider.is-ok .adp-slider-track{background:rgba(19,222,185,.12);border-color:rgba(19,222,185,.35)}
.adp-slider.is-ok .adp-slider-fill{background:rgba(19,222,185,.22);width:100%!important}
.adp-slider.is-ok .adp-slider-tip{color:#0bb7a0}
.adp-slider.is-ok .adp-slider-btn{background:#0bb7a0;color:#fff}

.adp-login-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:4px 0 18px;font-size:12px;color:#8b97ad;
}
.adp-check{display:inline-flex;align-items:center;gap:6px;cursor:pointer;margin:0;font-weight:400}
.adp-check input{margin:0}
.adp-muted{color:#9aa6bc}
.adp-btn{
  width:100%;height:46px;border:none;border-radius:10px;background:#5d87ff;color:#fff;
  font-size:15px;font-weight:650;cursor:pointer;transition:background .15s, transform .1s;
}
.adp-btn:hover{background:#4a74ef}
.adp-btn:active{transform:translateY(1px)}
.adp-login-foot{
  margin:28px 0 0;text-align:center;font-size:12px;color:#9aa6bc;
}
.adp-login-foot a{color:#5d87ff;font-weight:600;text-decoration:none}
.adp-login-foot a:hover{text-decoration:underline}
.adp-login-or{
  display:flex;align-items:center;gap:12px;margin:18px 0 14px;color:#9aa6bc;font-size:12px;
}
.adp-login-or::before,.adp-login-or::after{
  content:"";flex:1;height:1px;background:#e6ebf3;
}
.adp-login-or span{flex:none;white-space:nowrap}
.adp-login-wx{
  display:flex;flex-direction:column;align-items:center;margin:0 0 4px;
}
.adp-wx-iconbtn{
  width:44px;height:44px;border-radius:50%;border:1px solid #d7e2ff;background:#fff;
  color:#07c160;font-size:26px;line-height:1;cursor:pointer;display:inline-flex;
  align-items:center;justify-content:center;padding:0;transition:transform .12s, box-shadow .15s, border-color .15s;
}
.adp-wx-iconbtn:hover{border-color:#07c160;box-shadow:0 4px 14px rgba(7,193,96,.18);transform:translateY(-1px)}
.adp-wx-iconbtn:active{transform:translateY(0)}
.adp-wx-iconbtn[hidden]{display:none!important}
.adp-login-wx-panel{
  display:flex;flex-direction:column;align-items:center;width:100%;
}
.adp-login-wx-panel[hidden]{display:none!important}
.adp-login-wx .adp-wx-frame{
  width:168px;height:168px;padding:10px;
}
.adp-login-wx #loginWxImg{width:148px;height:148px;object-fit:contain;display:none}
.adp-login-wx .adp-wx-hint{margin-top:10px}
.adp-login-wx .adp-linkbtn{margin-top:6px}
.adp-login-panel.is-wx .adp-login-or{display:none}
.adp-login-wx-pick{
  width:100%;display:flex;flex-direction:column;align-items:stretch;gap:10px;
}
.adp-login-wx-pick[hidden]{display:none!important}
.adp-wx-pick-tip{margin:0;font-size:13px;color:#6b778c;text-align:center;line-height:1.45}
.adp-wx-pick-list{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow:auto}
.adp-wx-pick-item{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  border:1px solid #e6ebf3;background:#fff;border-radius:12px;padding:12px 14px;
  cursor:pointer;transition:border-color .15s, box-shadow .15s;
}
.adp-wx-pick-item:hover{border-color:#5d87ff;box-shadow:0 4px 14px rgba(93,135,255,.12)}
.adp-wx-pick-item.is-banned{opacity:.55;cursor:not-allowed;box-shadow:none}
.adp-wx-pick-item .face{
  width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:#f0f4ff;
}
.adp-wx-pick-item .face.ico{
  display:inline-flex;align-items:center;justify-content:center;color:#07c160;font-size:22px;
}
.adp-wx-pick-item .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.adp-wx-pick-item .txt b{font-size:14px;font-weight:650;color:#1f2937}
.adp-wx-pick-item .txt em{font-style:normal;font-size:12px;color:#9aa6bc}
.adp-wx-pick-item > .mdi-chevron-right{color:#c0c8d6;font-size:20px}

/* login → wizard transition */
.adp-stage{width:100%;max-width:360px;position:relative}
.adp-pane{
  width:100%;
  transition:opacity .32s ease, transform .32s ease;
  opacity:0;transform:translateY(16px);
}
.adp-pane.is-in{opacity:1;transform:translateY(0)}
.adp-pane.is-out{opacity:0;transform:translateY(-14px);pointer-events:none;position:absolute;left:0;right:0;top:0}
.adp-wizard-panel h2{margin:0 0 6px;font-size:24px;font-weight:750;color:#1f2937}
.adp-wiz-head{margin:0 0 18px}
.adp-wiz-bar{
  height:4px;border-radius:999px;background:#e8edf5;overflow:hidden;margin-bottom:10px;
}
.adp-wiz-bar span{
  display:block;height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,#7aa2ff,#5d87ff);transition:width .28s ease;
}
.adp-wiz-now{
  margin:0;display:flex;align-items:center;gap:8px;font-size:13px;color:#5b677a;
}
.adp-wiz-now em{
  font-style:normal;font-weight:700;font-size:12px;color:#5d87ff;
  background:rgba(93,135,255,.1);border-radius:999px;padding:2px 8px;
}
.adp-wiz-now strong{font-weight:650;color:#2a3346}
.adp-btn:disabled,.adp-btn[disabled]{
  background:#c5cddb!important;color:#fff!important;cursor:not-allowed;transform:none!important;
}
.adp-linkbtn{
  display:block;width:100%;margin-top:10px;border:0;background:transparent;
  color:#9aa6bc;font-size:13px;cursor:pointer;padding:6px 0;
}
.adp-linkbtn:hover{color:#5d87ff}

/* WeChat QR — 官方二维码整图，不裁切 */
.adp-wx{
  display:flex;flex-direction:column;align-items:center;
  margin:4px 0 12px;max-width:100%;
}
.adp-wx-tip{
  position:relative;display:inline-flex;align-items:center;gap:6px;
  background:#fff;border:1px solid #e8edf5;border-radius:10px;padding:6px 12px;
  box-shadow:0 4px 14px rgba(42,51,70,.07);margin:0 0 10px;font-size:12px;color:#2a3346;
  max-width:100%;box-sizing:border-box;z-index:2;
}
.adp-wx-tip::after{
  content:"";position:absolute;left:50%;bottom:-5px;width:8px;height:8px;
  background:#fff;border-right:1px solid #e8edf5;border-bottom:1px solid #e8edf5;
  transform:translateX(-50%) rotate(45deg);
}
.adp-wx-tip .mdi-wechat{color:#07c160;font-size:18px}
.adp-wx-tip em{font-style:normal;color:#07c160;margin-left:2px}
.adp-wx-frame{
  position:relative;width:188px;height:188px;padding:14px;box-sizing:border-box;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;
}
.adp-wx-frame .c{position:absolute;width:18px;height:18px;border:2.5px solid #5d87ff;z-index:2;pointer-events:none}
.adp-wx-frame .tl{left:0;top:0;border-right:none;border-bottom:none}
.adp-wx-frame .tr{right:0;top:0;border-left:none;border-bottom:none}
.adp-wx-frame .bl{left:0;bottom:0;border-right:none;border-top:none}
.adp-wx-frame .br{right:0;bottom:0;border-left:none;border-top:none}
#wizWxImg{
  width:160px;height:160px;object-fit:contain;display:none;background:#fff;border-radius:2px;z-index:1;
}
.adp-wx-cb{
  position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;border:0;left:0;top:0;
}
.adp-wx-loading{font-size:12px;color:#9aa6bc;text-align:center;padding:16px;z-index:1}
.adp-wx-hint{margin:8px 0 0;font-size:12px;color:#9aa6bc;text-align:center;line-height:1.4;max-width:220px}
.adp-wx-nickline{margin:6px 0 0;font-size:13px;color:#0bb7a0;font-weight:600}
.adp-wx-mask{
  position:absolute;left:14px;right:14px;top:14px;bottom:14px;z-index:4;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:rgba(42,51,70,.55);border-radius:6px;pointer-events:none;padding:8px;
  text-align:center;
}
.adp-wx-mask[hidden]{display:none!important}
.adp-wx-check{
  width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.94);
  display:flex;align-items:center;justify-content:center;color:#0bb7a0;font-size:24px;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}
.adp-wx-cb{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;border:0;left:-9999px;top:0}
.adp-wx-mask.is-scan .adp-wx-check{color:#5d87ff}
.adp-wx-mask.is-bind .adp-wx-check{color:#fff;background:rgba(93,135,255,.95)}
.adp-wx-mask .mdi-spin{animation:adpWxSpin 0.9s linear infinite;display:inline-block}
@keyframes adpWxSpin{to{transform:rotate(360deg)}}
.adp-wx-mask em{font-style:normal;font-size:13px;color:#fff;font-weight:650}
.adp-wx-mask small{font-size:11px;color:rgba(255,255,255,.85);line-height:1.35}
.adp-wx-frame.is-ok{cursor:default}
.adp-wx-frame.is-ok #wizWxImg{filter:grayscale(1) brightness(.9)}
.adp-wx-frame.is-dim #wizWxImg{filter:grayscale(1) brightness(.88)}

.adp-theme-pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 18px}
.adp-theme-card{
  border:1px solid #e5eaf2;border-radius:12px;background:#f7f9fc;padding:12px;text-align:left;cursor:pointer;
}
.adp-theme-card.on{border-color:#5d87ff;box-shadow:0 0 0 3px rgba(93,135,255,.12);background:#fff}
.adp-theme-card .preview{
  display:block;height:54px;border-radius:8px;margin-bottom:8px;border:1px solid rgba(0,0,0,.04);
}
.adp-theme-card .preview.light{background:linear-gradient(135deg,#f7f9fc,#eef2ff)}
.adp-theme-card .preview.dark{background:linear-gradient(135deg,#1a1f2a,#121722)}
.adp-theme-card strong{display:block;font-size:13px;color:#2a3346;margin-bottom:2px}
.adp-theme-card small{font-size:11px;color:#9aa6bc}
.adp-wiz-tips{list-style:none;padding:0;margin:0 0 20px}
.adp-wiz-tips li{
  display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #eef2f8;
  font-size:13px;color:#5b677a;line-height:1.45;
}
.adp-wiz-tips li:last-child{border-bottom:none}
.adp-wiz-tips i{color:#5d87ff;font-size:18px;margin-top:1px}
.adp-wiz-tips b{color:#2a3346;display:block;margin-bottom:2px}

.adp-ai-guide{list-style:none;padding:0;margin:0 0 18px}
.adp-ai-guide li{
  display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #eef2f8;
}
.adp-ai-guide li:last-child{border-bottom:none}
.adp-ai-guide i{
  flex:0 0 36px;width:36px;height:36px;border-radius:10px;background:rgba(93,135,255,.1);
  color:#5d87ff;display:flex;align-items:center;justify-content:center;font-size:18px;
}
.adp-ai-guide b{display:block;font-size:14px;color:#2a3346;margin-bottom:4px}
.adp-ai-guide span{font-size:12px;line-height:1.55;color:#5b677a}

.adp-policy-list{display:flex;flex-direction:column;gap:8px;margin:0 0 16px}
.adp-policy-item{
  border:1px solid #e5eaf2;border-radius:12px;background:#f7f9fc;overflow:hidden;
}
.adp-policy-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 12px 14px;
}
.adp-policy-name{
  border:0;background:transparent;padding:0;text-align:left;font-size:13px;font-weight:600;
  color:#2a3346;cursor:pointer;flex:1;
}
.adp-policy-name:hover{color:#5d87ff}
.adp-switch{
  position:relative;width:44px;height:26px;border:0;border-radius:999px;background:#cfd6e4;
  cursor:pointer;flex:0 0 auto;padding:0;transition:background .2s ease;
}
.adp-switch i{
  position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;
  background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.15);transition:left .2s ease;pointer-events:none;
}
.adp-switch.on{background:#5d87ff}
.adp-switch.on i{left:21px}
.adp-policy-body{
  padding:0 14px 12px;font-size:12px;line-height:1.6;color:#5b677a;border-top:1px dashed #e5eaf2;
}
.adp-policy-body p{margin:10px 0 0}
.adp-policy-item.open{border-color:#c9d7ff;background:#fff}

html[data-theme="dark"] .adp-login{background:#0f1218}
html[data-theme="dark"] .adp-login-left{background:linear-gradient(165deg,#151b28 0%,#121722 100%)}
html[data-theme="dark"] .adp-login-brand{color:var(--ad-text)}
html[data-theme="dark"] .adp-login-hero h2,
html[data-theme="dark"] .adp-wizard-panel h2{color:var(--ad-text)}
html[data-theme="dark"] .adp-login-right{background:#0f1218}
html[data-theme="dark"] .adp-login-panel h1{color:var(--ad-text)}
html[data-theme="dark"] .adp-login-desc,
html[data-theme="dark"] .adp-wiz-now{color:var(--ad-text-2)}
html[data-theme="dark"] .adp-wiz-now strong{color:var(--ad-text)}
html[data-theme="dark"] .adp-wiz-bar{background:#243044}
html[data-theme="dark"] .adp-input{background:#1a1f2a;border-color:var(--ad-border);color:var(--ad-text)}
html[data-theme="dark"] .adp-slider-track{background:#1a1f2a;border-color:var(--ad-border)}
html[data-theme="dark"] .adp-tool{background:#1a1f2a;border-color:var(--ad-border);color:var(--ad-text-2)}
html[data-theme="dark"] .adp-login-or{color:#8b95a8}
html[data-theme="dark"] .adp-login-or::before,
html[data-theme="dark"] .adp-login-or::after{background:var(--ad-border)}
html[data-theme="dark"] .adp-wx-iconbtn{
  background:#1a1f2a;border-color:var(--ad-border);color:#07c160;
}
html[data-theme="dark"] .adp-wx-iconbtn:hover{border-color:#07c160}
html[data-theme="dark"] .adp-wx-pick-item{
  background:#1a1f2a;border-color:var(--ad-border);
}
html[data-theme="dark"] .adp-wx-pick-item:hover{border-color:#5d87ff}
html[data-theme="dark"] .adp-wx-pick-item .txt b{color:var(--ad-text)}
html[data-theme="dark"] .adp-wx-pick-tip{color:#8b95a8}
html[data-theme="dark"] .adp-wx-tip{background:#1a1f2a;border-color:var(--ad-border);color:var(--ad-text)}
html[data-theme="dark"] .adp-wx-tip::after{background:#1a1f2a;border-color:var(--ad-border)}
html[data-theme="dark"] .adp-theme-card{background:#1a1f2a;border-color:var(--ad-border)}
html[data-theme="dark"] .adp-theme-card.on{background:#151b28}
html[data-theme="dark"] .adp-theme-card strong{color:var(--ad-text)}
html[data-theme="dark"] .adp-wiz-tips li,
html[data-theme="dark"] .adp-ai-guide li{border-color:var(--ad-border);color:var(--ad-text-2)}
html[data-theme="dark"] .adp-wiz-tips b,
html[data-theme="dark"] .adp-ai-guide b{color:var(--ad-text)}
html[data-theme="dark"] .adp-ai-guide span{color:var(--ad-text-2)}
html[data-theme="dark"] .adp-policy-item{background:#1a1f2a;border-color:var(--ad-border)}
html[data-theme="dark"] .adp-policy-item.open{background:#151b28;border-color:#3a4a6a}
html[data-theme="dark"] .adp-policy-name{color:var(--ad-text)}
html[data-theme="dark"] .adp-policy-body{border-color:var(--ad-border);color:var(--ad-text-2)}
html[data-theme="dark"] .adp-switch{background:#3a4458}
html[data-theme="dark"] .adp-linkbtn{color:var(--ad-text-3)}
html[data-theme="dark"] .adp-btn:disabled{background:#3a4458!important;color:#8b95a8!important}

@media (max-width:960px){
  .adp-login{flex-direction:column;background:#fff}
  /* 手机端：只保留一行品牌，去掉长标语 */
  .adp-login-left{
    padding:16px 18px 0;min-height:auto;flex:none;
    background:#fff;
  }
  .adp-login-brand{
    font-size:15px;gap:8px;
  }
  .adp-login-brand img{width:26px;height:26px;border-radius:7px}
  .adp-login-hero{display:none!important}
  .adp-login-right{
    max-width:none;padding:20px 18px 28px;align-items:flex-start;flex:1;
  }
  .adp-login-tools{top:12px;right:14px;z-index:40}
  .adp-tool{width:40px;height:40px;font-size:20px}
  .adp-login.is-wizard .adp-wiz-head{padding-right:48px}
  .adp-login-panel h1,.adp-wizard-panel h2{font-size:22px}
  .adp-login-desc{margin-bottom:18px;font-size:13px}
  .adp-stage{max-width:none}
  .adp-wiz-head{margin-bottom:12px}
  .adp-wiz-now{font-size:12px}
  .adp-wiz-step[data-step="wx"] h2{font-size:18px;margin-bottom:4px}
  .adp-wiz-step[data-step="wx"] .adp-login-desc{margin:0 0 10px;font-size:12px}
  .adp-wx{margin:2px 0 10px}
  .adp-wx-tip{font-size:11px;padding:5px 10px;margin-bottom:8px}
  .adp-wx-tip .mdi-wechat{font-size:16px}
  .adp-wx-frame{width:172px;height:172px;padding:12px}
  .adp-wx-frame .c{width:16px;height:16px;border-width:2px}
  #wizWxImg{width:148px;height:148px}
  .adp-wx-mask{left:12px;right:12px;top:12px;bottom:12px}
  .adp-wx-check{width:40px;height:40px;font-size:22px}
  .adp-wx-hint{font-size:11px;max-width:200px}
  .adp-ai-guide i{flex-basis:32px;width:32px;height:32px;font-size:16px}
  .adp-policy-row{padding:11px 10px 11px 12px}
  .adp-login.is-wizard .adp-login-left{display:none}
  .adp-login.is-wizard .adp-login-right{padding:12px 16px 20px;align-items:flex-start}
  .adp-login.is-wizard .adp-stage{padding-top:4px}
  html[data-theme="dark"] .adp-login-left{background:#0f1218}
}

/* legacy class aliases used by sy.php rewrite */
.tc-home{padding:0}
.tc-php-btn{background:var(--ad-primary-soft)!important;border:none!important;color:var(--ad-primary)!important}

/* ========== MN FTP IDE ========== */
.ide-list-card{
  border:1px solid var(--ad-border)!important;box-shadow:var(--ad-shadow)!important;margin-bottom:0!important;
  display:flex;flex-direction:column;min-height:calc(100vh - 110px);
}
.ide-list-body{padding:12px 14px 8px!important;display:flex;flex-direction:column;flex:1;min-height:0}
.ide-list-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.ide-path{
  flex:1;min-width:160px;font-size:13px;padding:7px 12px;background:var(--ad-bg);border-radius:8px;
  border:1px solid var(--ad-border);display:flex;align-items:center;gap:6px;color:var(--ad-text-2);
}
.ide-path a{color:var(--ad-primary)!important;font-weight:600}
.ide-table-wrap{flex:1;min-height:0}
#file-list-panel .fixed-table-container,
#file-list-panel .fixed-table-body,
#file-list-panel .bootstrap-table,
#file-list-panel .fixed-table-container table{
  background:var(--ad-card)!important;color:var(--ad-text)!important;
}
#file-list-panel .fixed-table-container{border:1px solid var(--ad-border)!important;border-radius:10px;overflow:hidden;min-height:auto!important}
#file-list-panel .bootstrap-table .table{margin-bottom:0!important;background:var(--ad-card)!important;color:var(--ad-text)!important}
#file-list-panel .bootstrap-table .table thead th{
  background:var(--ad-bg)!important;border-bottom:1px solid var(--ad-border)!important;color:var(--ad-text-2)!important;
  font-size:12px!important;font-weight:600!important;padding:10px 12px!important;
}
#file-list-panel .bootstrap-table .table td{
  padding:10px 12px!important;vertical-align:middle!important;border-color:var(--ad-border)!important;font-size:13px;color:var(--ad-text)!important;
  background:transparent!important;
}
#file-list-panel .bootstrap-table .table-striped tbody tr:nth-of-type(odd){background:rgba(127,140,160,.06)!important}
#file-list-panel .bootstrap-table .table-hover tbody tr:hover{background:var(--ad-primary-soft)!important}
#file-list-panel .fixed-table-pagination{padding:8px 4px!important;font-size:12px;color:var(--ad-text-3)}
#file-list-panel .card-body{padding-bottom:8px!important;background:var(--ad-card)!important}
#file-list-panel.card,#file-list-panel .card{background:var(--ad-card)!important;color:var(--ad-text)!important}
.fm-name{display:flex;align-items:center;gap:10px;min-width:0}
.fm-ico{
  width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.fm-ico.dir{background:var(--ad-warning-bg);color:var(--ad-warning)}
.fm-ico.file{background:var(--ad-primary-soft);color:var(--ad-primary)}
.fm-ico i{font-size:18px!important;line-height:1!important}
.fm-link,.fm-fname{color:var(--ad-text)!important;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-link:hover{color:var(--ad-primary)!important}
.fm-ops{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.fm-op{
  width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--ad-text-2)!important;background:var(--ad-bg);border:1px solid transparent;transition:all .15s;
}
.fm-op:hover{background:var(--ad-primary-soft);color:var(--ad-primary)!important;border-color:var(--ad-primary-soft2)}
.fm-op.del-btn:hover{background:var(--ad-danger-bg);color:var(--ad-danger)!important;border-color:#f7cfc6}
.fm-op i{font-size:16px!important;line-height:1!important;margin:0!important}

/* IDE 打开时锁住页面滚动，只让编辑器 / AI 消息区内部滚 */
body.ide-open,
html:has(body.ide-open){
  overflow:hidden!important;height:100%!important;overscroll-behavior:none;
}
body.ide-open .tc-work,
body.ide-open .tc-work-body,
body.ide-open .container-fluid.p-t-15{
  height:100%!important;max-height:100%!important;min-height:0!important;
  overflow:hidden!important;box-sizing:border-box;
}
body.ide-open .tc-work-body{padding:8px!important}
body.ide-open .container-fluid.p-t-15{padding-top:0!important;padding-bottom:0!important}
.ide-panel{
  background:#fff;border:1px solid var(--ad-border);border-radius:12px;overflow:hidden;
  box-shadow:var(--ad-shadow);margin:0;display:flex;flex-direction:column;
  min-height:0;max-height:100%;
}
body.ide-open .ide-panel{
  height:100%;max-height:calc(100vh - 16px);border-radius:10px;
}
.ide-top{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding:8px 12px;background:#fafbfd;border-bottom:1px solid var(--ad-border);
}
.ide-top-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ide-top-left strong{font-size:14px;color:var(--ad-text)}
.ide-lint-badge{
  font-size:11px;padding:2px 8px;border-radius:999px;background:#eef2f7;color:var(--ad-text-3);
  cursor:pointer;user-select:none;
}
.ide-lint-badge.has-warn{background:#fff4e5;color:#b54708}
.ide-lint-badge.has-err{background:#fdecee;color:#c62828}
.ide-problems{
  border-top:1px solid var(--ad-border);background:#fafbfd;max-height:140px;
  display:flex;flex-direction:column;min-height:0;flex-shrink:0;
}
.ide-problems-hd{
  display:flex;align-items:center;justify-content:space-between;
  padding:4px 10px;font-size:12px;font-weight:600;color:var(--ad-text-2);
  border-bottom:1px solid var(--ad-border);
}
.ide-problems-close{
  border:0;background:transparent;color:var(--ad-text-3);font-size:16px;line-height:1;cursor:pointer;padding:0 4px;
}
.ide-problems-close:hover{color:var(--ad-text)}
.ide-problems-bd{overflow:auto;padding:4px 0;flex:1;min-height:0}
.ide-prob-row{
  display:flex;align-items:flex-start;gap:10px;width:100%;border:0;background:transparent;
  text-align:left;padding:5px 12px;font-size:12px;cursor:pointer;color:var(--ad-text-2);
}
.ide-prob-row:hover{background:#eef2f7}
.ide-prob-row .ln{flex-shrink:0;min-width:36px;font-weight:600;font-variant-numeric:tabular-nums}
.ide-prob-row.err .ln{color:#c62828}
.ide-prob-row.warn .ln{color:#b54708}
.ide-prob-row.info .ln{color:#1e88e5}
.ide-prob-row .msg{flex:1;min-width:0;word-break:break-word}
html[data-theme="dark"] .ide-problems{background:#161b24;border-color:var(--ad-border)}
html[data-theme="dark"] .ide-prob-row:hover{background:var(--ad-primary-soft)}
.ide-toolbar{
  display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;
  padding:6px 12px;border-bottom:1px solid var(--ad-border);background:#fff;
}
.ide-tb-group{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.ide-lbl{font-size:12px;color:var(--ad-text-2);margin:0;display:inline-flex;align-items:center;gap:4px}
.ide-toolbar kbd{font-size:10px;opacity:.75;margin-left:2px}
.ide-diff-float{
  position:absolute;z-index:20;left:56px;top:40px;
  display:none;align-items:center;gap:10px;flex-wrap:nowrap;
  padding:5px 8px;border-radius:10px;
  background:#1e2430;border:1px solid #2c3444;
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  font-size:12px;color:#c8d0dc;pointer-events:auto;
  white-space:nowrap;max-width:calc(100% - 24px);
}
.ide-diff-float.is-on{display:inline-flex!important}
.ide-diff-nav{display:inline-flex;align-items:center;gap:4px;padding:0 4px;border-radius:8px;background:#2a3140}
.ide-diff-nav-btn{
  width:22px;height:22px;border-radius:6px;border:0;background:transparent;color:#c8d0dc;cursor:pointer;
  line-height:1;padding:0;font-size:11px;
}
.ide-diff-nav-btn:hover{background:#343c4f;color:#fff}
#ide-diff-count{min-width:52px;text-align:center;font-variant-numeric:tabular-nums;color:#d7dde8;font-size:12px}
.ide-diff-actions{display:inline-flex;gap:6px;align-items:center}
.ide-diff-actions kbd{
  font-size:10px;opacity:.65;font-family:inherit;font-weight:500;padding:0;border:0;background:transparent;color:#9aa6b8;
}
.ide-diff-btn{
  height:28px;padding:0 12px;border-radius:8px;border:1px solid #3a4458;cursor:pointer;
  font-size:12px;font-weight:600;line-height:1;
}
.ide-diff-btn.undo{background:#2a3140;color:#e8edf5;border-color:#3a4458}
.ide-diff-btn.undo:hover{background:#343c4f}
.ide-diff-btn.keep{background:#3dd68c;border-color:#3dd68c;color:#062816}
.ide-diff-btn.keep:hover{filter:brightness(1.05)}
.ide-diff-gutter{width:4px}
.ide-cm-add{background:rgba(61,214,140,.18)!important}
.ide-cm-del-widget{
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:inherit;line-height:inherit;
  margin:0;padding:0;
}
.ide-cm-del-line{
  position:relative;background:rgba(255,107,107,.16);color:#e8a0a0;
  padding:0 8px 0 10px;white-space:pre;text-decoration:none;
  border-left:3px solid #ff6b6b;
}
.cm-s-default .ide-cm-del-line,
.cm-s-eclipse .ide-cm-del-line{color:#9a3b3b;background:rgba(255,107,107,.12)}
.ide-cm-add-gutter{width:3px;height:100%;min-height:14px;background:#3dd68c;margin-left:1px}
.ide-cm-del-gutter{width:3px;background:#ff6b6b}
.ide-main{display:flex;min-height:0;background:#fff;flex:1;overflow:hidden}
.ide-editor-col{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden}
.ide-editor-wrap,.ide-merge-wrap{flex:1;min-width:0;min-height:0;position:relative;height:auto;overflow:hidden}
/* 不用 height:100%!important，避免盖掉 CodeMirror.setSize 的固定高度导致整页跟着内容撑开 */
.ide-editor-wrap .CodeMirror,
.ide-merge-wrap .CodeMirror{
  height:100%;width:100%!important;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px;
  border:0!important;margin:0!important;
}
.ide-editor-wrap .CodeMirror-scroll,
.ide-merge-wrap .CodeMirror-scroll{
  max-height:100%;
}
.ide-merge-wrap .CodeMirror-merge,.ide-merge-wrap .CodeMirror-merge-pane{height:100%!important}
.ide-ai{
  width:360px;flex-shrink:0;border-left:1px solid var(--ad-border);background:#f7f9fc;
  display:flex;flex-direction:column;min-height:0;overflow:hidden;align-self:stretch;
}
.ide-ai-hd{
  display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--ad-border);background:#fff;
}
.ide-agent-tools{
  display:inline-flex;align-items:center;gap:2px;flex-shrink:0;
}
.ide-agent-tool{
  width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--ad-text-3);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
}
.ide-agent-tool:hover{background:var(--ad-primary-soft);color:var(--ad-primary)}
.ide-agent-tool svg{display:block;pointer-events:none}
.ide-agent-ico{
  width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#5d87ff,#7aa2ff);
  color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 4px 10px rgba(93,135,255,.28);
}
.ide-agent-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.ide-agent-meta strong{
  font-size:13px;font-weight:650;color:var(--ad-text);line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ide-agent-sub{font-size:11px;color:var(--ad-text-3)}
.ide-agent-quota{font-size:11px;color:var(--ad-primary);opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ide-ai-msgs{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:0}
.ide-ai-welcome{font-size:12px;color:var(--ad-text-3);line-height:1.6;padding:8px;background:#fff;border-radius:8px;border:1px dashed var(--ad-border)}
.ide-msg{display:flex;flex-direction:column;gap:6px;max-width:100%;min-width:0}
.ide-msg-user{align-items:flex-end}
.ide-msg-ai{align-items:flex-start;width:100%}
.ide-msg-bubble{
  max-width:100%;min-width:0;overflow:hidden;box-sizing:border-box;
  font-size:13px;line-height:1.55;padding:8px 10px;border-radius:10px;background:#fff;
  border:1px solid var(--ad-border);color:var(--ad-text);word-break:break-word;
}
.ide-msg-user .ide-msg-bubble{background:var(--ad-primary);color:#fff;border-color:transparent}
.ide-md pre{background:#0f172a0d;padding:8px;border-radius:6px;overflow:auto;font-size:12px}
.ide-md code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px}
.ide-md p{margin:0 0 .6em}
.ide-md p:last-child{margin-bottom:0}
.ide-think{display:none!important}
.ide-thought{width:100%;margin:0 0 4px}
.ide-thought-toggle{
  border:0;background:transparent;padding:0;cursor:pointer;font-size:12px;color:#8b97ab;
  display:inline-flex;align-items:center;gap:6px;font-weight:500;
}
.ide-thought-toggle:hover{color:#5a6a85}
.ide-thought-toggle .chev{font-size:10px;transition:transform .15s;display:inline-block}
.ide-thought.open .chev{transform:rotate(90deg)}
.ide-thought-body{
  display:none;margin-top:6px;padding:0 0 0 2px;font-size:12px;color:#7c8fac;line-height:1.55;white-space:pre-wrap;
  max-height:160px;overflow:auto;
}
.ide-thought.open .ide-thought-body{display:block}
.ide-diff-card{
  width:100%;max-width:100%;min-width:0;box-sizing:border-box;
  margin-top:8px;background:var(--ad-diff-card-bg);border-radius:10px;overflow:hidden;
  border:1px solid var(--ad-diff-card-bd);
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;color:var(--ad-diff-card-fg);
}
.ide-diff-card.is-streaming{
  border-color:color-mix(in srgb, var(--ad-primary, #3b82f6) 45%, var(--ad-diff-card-bd));
}
.ide-diff-card.is-streaming .ide-diff-card-hd .fn{opacity:.85}
.ide-proposal-live-tip{
  margin-top:6px;font-size:12px;color:var(--ad-text-3);line-height:1.4;
}
.ide-diff-card-hd{
  display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--ad-diff-card-hd);
  border-bottom:1px solid var(--ad-diff-card-bd);font-size:12px;color:var(--ad-text-2);
  cursor:pointer;user-select:none;
}
.ide-diff-card-hd:hover{filter:brightness(.98)}
.ide-diff-card-hd .fn{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ad-text)}
.ide-diff-card-hd .plus{color:#0a9f7a;font-weight:600;flex-shrink:0}
.ide-diff-card-hd .minus{color:#d14343;font-weight:600;flex-shrink:0}
.ide-diff-card-chev{
  flex-shrink:0;font-size:10px;color:var(--ad-text-3);transition:transform .15s ease;line-height:1;
}
.ide-diff-card.is-open .ide-diff-card-chev{transform:rotate(180deg)}
html[data-theme="dark"] .ide-diff-card-hd .plus{color:#3dd68c}
html[data-theme="dark"] .ide-diff-card-hd .minus{color:#ff6b6b}
.ide-diff-card-bd{max-height:148px;overflow:auto;padding:4px 0;transition:max-height .15s ease}
.ide-diff-card.is-open .ide-diff-card-bd{max-height:min(420px,55vh)}
.ide-diff-line{
  display:block;width:100%;box-sizing:border-box;border:0;background:transparent;text-align:left;
  padding:0 0 0 3px;margin:0;line-height:1.45;cursor:pointer;color:inherit;font:inherit;
  overflow:hidden;
}
.ide-diff-line:hover{filter:brightness(.97)}
.ide-diff-line.del{background:var(--ad-diff-del-bg);border-left:3px solid var(--ad-diff-del-bar)}
.ide-diff-line.add{background:var(--ad-diff-add-bg);border-left:3px solid var(--ad-diff-add-bar)}
.ide-diff-line.ctx{border-left:3px solid transparent;opacity:.75}
.ide-diff-code{
  display:block;padding:0 10px;white-space:pre;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 calc(100% - 36px),transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 calc(100% - 36px),transparent 100%);
}
.ide-diff-card.is-open .ide-diff-code{
  white-space:pre-wrap;word-break:break-word;
  -webkit-mask-image:none;mask-image:none;
}
.ide-keep-link,
.ide-acc-btn{
  display:inline-flex;align-items:center;gap:6px;margin:0;border:0;background:transparent;
  color:var(--ad-text-2);font-size:13px;font-weight:600;cursor:pointer;padding:4px 2px;
  line-height:1;font-family:inherit;
}
.ide-acc-btn:hover{color:var(--ad-text);opacity:.9}
.ide-acc-btn.primary,
.ide-keep-link{color:var(--ad-primary)}
.ide-acc-btn.primary:hover,
.ide-keep-link:hover{opacity:.85;color:var(--ad-primary)}
.ide-acc-btn svg,
.ide-keep-link svg{flex-shrink:0}
.ide-proposal-note{
  margin-top:10px;font-size:13px;line-height:1.55;color:var(--ad-text);
}
.ide-proposal-note p{margin:0 0 .45em}
.ide-proposal-note p:last-child{margin-bottom:0}
.ide-proposal-note ul{margin:4px 0 0;padding-left:18px}
.ide-summary{
  margin-top:8px;padding:10px 12px;border-radius:10px;background:var(--ad-primary-soft);
  border:1px solid var(--ad-border);font-size:12px;line-height:1.55;color:var(--ad-text-2);
}
.ide-summary-title{font-size:13px;font-weight:700;color:var(--ad-text);margin-bottom:6px}
.ide-summary-body{color:var(--ad-text);margin-bottom:8px}
.ide-summary-body p{margin:0 0 .45em}
.ide-summary-body p:last-child{margin-bottom:0}
.ide-summary-body ul{margin:4px 0 0;padding-left:18px}
.ide-summary-meta{font-size:12px;color:var(--ad-text-2)}
.ide-summary-warn{color:#b54708}
.ide-summary-issues{margin:6px 0 0;padding-left:18px}
.ide-summary strong{color:var(--ad-text);font-weight:600}
.ide-summary .ok{color:#0a9f7a}
.ide-summary .bad{color:#d14343}
.ide-summary ul{margin:6px 0 0;padding-left:18px}
.ide-lint-gutter{width:16px!important;min-width:16px}
.ide-lint-mark{
  font-size:11px;line-height:1;width:100%;text-align:center;cursor:help;
  display:flex;align-items:center;justify-content:center;height:100%;min-height:14px;
}
.ide-lint-err{color:#e53935}
.ide-lint-warn{color:#fb8c00}
.ide-lint-info{color:#1e88e5}
.ide-lint-line-err{background:rgba(229,57,53,.1)!important}
.ide-lint-line-warn{background:rgba(251,140,0,.1)!important}
.ide-lint-line-info{background:rgba(30,136,229,.08)!important}
.CodeMirror .ide-lint-gutter{background:transparent}

/* dark shell extras */
html[data-theme="dark"] .lyear-layout-header,
html[data-theme="dark"] .lyear-layout-sidebar,
html[data-theme="dark"] .sidebar-header,
html[data-theme="dark"] .sidebar-footer,
html[data-theme="dark"] .lyear-layout-sidebar-info{background:#151922!important}
html[data-theme="dark"] .lyear-layout-header{border-bottom-color:var(--ad-border)!important}
html[data-theme="dark"] .nav-drawer > li > a{color:var(--ad-text-2)!important}
html[data-theme="dark"] .tc-user-chip,
html[data-theme="dark"] .tc-icon-btn,
html[data-theme="dark"] .lyear-aside-toggler{background:var(--ad-card)!important;border-color:var(--ad-border)!important;color:var(--ad-text-2)!important}
html[data-theme="dark"] .ad-ai-dash{background:linear-gradient(180deg, rgba(93,135,255,.08), transparent 72%)}
html[data-theme="dark"] .ad-ai-gauge .ring circle.track{stroke:rgba(168,179,199,.16)}
html[data-theme="dark"] .ad-metric,
html[data-theme="dark"] .ad-card,
html[data-theme="dark"] .ad-ai-card,
html[data-theme="dark"] .ad-mod,
html[data-theme="dark"] .ide-panel,
html[data-theme="dark"] .ide-ai,
html[data-theme="dark"] .ide-ai-hd,
html[data-theme="dark"] .ide-ai-welcome,
html[data-theme="dark"] .ide-msg-bubble,
html[data-theme="dark"] .ide-toolbar,
html[data-theme="dark"] .ide-top,
html[data-theme="dark"] .ide-status{background:var(--ad-card)!important;border-color:var(--ad-border)!important;color:var(--ad-text)!important}
html[data-theme="dark"] .ide-ai{background:#161b24!important}
html[data-theme="dark"] .ide-msg-user .ide-msg-bubble{background:var(--ad-primary)!important;color:#fff!important}
html[data-theme="dark"] .form-control,
html[data-theme="dark"] select.form-control,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea.form-control,
html[data-theme="dark"] input.form-control,
html[data-theme="dark"] .input-group .form-control{
  background-color:#1a1f2a!important;
  background-image:none!important;
  border-color:var(--ad-border)!important;
  color:var(--ad-text)!important;
}
html[data-theme="dark"] .custom-select,
html[data-theme="dark"] select.custom-select{
  background-color:#1a1f2a!important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23a8b3c7' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e")!important;
  background-repeat:no-repeat!important;
  background-position:right .75rem center!important;
  background-size:8px 10px!important;
  border-color:var(--ad-border)!important;
  color:var(--ad-text)!important;
}
html[data-theme="dark"] .custom-select option,
html[data-theme="dark"] select option{
  background:#1a1f2a!important;color:var(--ad-text)!important;
}
html[data-theme="dark"] .btn-default{background:var(--ad-card)!important;border-color:var(--ad-border)!important;color:var(--ad-text-2)!important}
html[data-theme="dark"] .ad-act:hover,
html[data-theme="dark"] .ad-cred-row:hover{background:var(--ad-primary-soft)!important}
html[data-theme="dark"] .ad-welcome .meta .chip{background:var(--ad-card);border-color:var(--ad-border);color:var(--ad-text-2)}
html[data-theme="dark"] .tc-crumb{color:var(--ad-text-3)}
html[data-theme="dark"] .tc-crumb b{color:var(--ad-text)}
/* 深色：工作台 / 表格 / 文件管理（覆盖 bootstrap-table 白底） */
html[data-theme="dark"] .tc-work-bar,
html[data-theme="dark"] .tc-work-panel,
html[data-theme="dark"] .tc-work-panel-hd,
html[data-theme="dark"] .ide-list-card,
html[data-theme="dark"] .card,
html[data-theme="dark"] .card-body,
html[data-theme="dark"] .card-header,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .dropdown-menu{
  background:var(--ad-card)!important;border-color:var(--ad-border)!important;color:var(--ad-text)!important;
}
html[data-theme="dark"] .table,
html[data-theme="dark"] .bootstrap-table .table,
html[data-theme="dark"] .fixed-table-container,
html[data-theme="dark"] .fixed-table-body,
html[data-theme="dark"] .fixed-table-header,
html[data-theme="dark"] #file-list-panel .bootstrap-table .table{
  background:var(--ad-card)!important;color:var(--ad-text)!important;
}
html[data-theme="dark"] .table thead th,
html[data-theme="dark"] .bootstrap-table .table thead th,
html[data-theme="dark"] #file-list-panel .bootstrap-table .table thead th{
  background:#161b24!important;color:var(--ad-text-2)!important;border-color:var(--ad-border)!important;
}
html[data-theme="dark"] .table td,
html[data-theme="dark"] .bootstrap-table .table td,
html[data-theme="dark"] #file-list-panel .bootstrap-table .table td{
  border-color:var(--ad-border)!important;color:var(--ad-text)!important;background:transparent!important;
}
html[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd),
html[data-theme="dark"] .bootstrap-table .table-striped tbody tr:nth-of-type(odd){
  background:rgba(255,255,255,.03)!important;
}
html[data-theme="dark"] .table-hover tbody tr:hover,
html[data-theme="dark"] .bootstrap-table .table-hover tbody tr:hover{
  background:var(--ad-primary-soft)!important;
}
html[data-theme="dark"] .ide-path,
html[data-theme="dark"] .fm-op{background:#161b24!important;border-color:var(--ad-border)!important;color:var(--ad-text-2)!important}
html[data-theme="dark"] .fm-ico.file{background:var(--ad-primary-soft)!important}
html[data-theme="dark"] .fm-ico.dir{background:var(--ad-warning-bg)!important}
html[data-theme="dark"] .pagination .page-link,
html[data-theme="dark"] .fixed-table-pagination .pagination a{
  background:var(--ad-card)!important;border-color:var(--ad-border)!important;color:var(--ad-text-2)!important;
}
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer{border-color:var(--ad-border)!important}
html[data-theme="dark"] .modal-title,
html[data-theme="dark"] .dropdown-item{color:var(--ad-text)!important}
html[data-theme="dark"] .dropdown-item:hover{background:var(--ad-primary-soft)!important}
html[data-theme="dark"] body,
html[data-theme="dark"] .lyear-layout-content,
html[data-theme="dark"] .container-fluid{background:var(--ad-bg)!important;color:var(--ad-text)!important}
html[data-theme="dark"] .tc-side-card,
html[data-theme="dark"] .tc-side-card-bd{background:var(--ad-card)!important;border-color:var(--ad-border)!important;color:var(--ad-text)!important}
html[data-theme="dark"] .tc-side-card-hd{
  background:#161b24!important;border-color:var(--ad-border)!important;color:var(--ad-text)!important;
}
html[data-theme="dark"] .tc-quick-links a,
html[data-theme="dark"] .tc-ssl-stat,
html[data-theme="dark"] .tc-php-btn{
  background:#161b24!important;border-color:var(--ad-border)!important;color:var(--ad-text-2)!important;
}
html[data-theme="dark"] .tc-quick-links a:hover,
html[data-theme="dark"] .tc-php-btn:hover{
  background:var(--ad-primary-soft)!important;color:var(--ad-primary)!important;
}
html[data-theme="dark"] .tc-alert,
html[data-theme="dark"] .alert,
html[data-theme="dark"] .well,
html[data-theme="dark"] .jumbotron,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .input-group-text,
html[data-theme="dark"] .custom-file-label{
  background:var(--ad-card)!important;border-color:var(--ad-border)!important;color:var(--ad-text)!important;
}
html[data-theme="dark"] .bg-white,
html[data-theme="dark"] .bg-light{background:var(--ad-card)!important;color:var(--ad-text)!important}
html[data-theme="dark"] .text-dark{color:var(--ad-text)!important}
html[data-theme="dark"] .text-muted{color:var(--ad-text-3)!important}
html[data-theme="dark"] .close,
html[data-theme="dark"] .modal .close{color:var(--ad-text)!important;text-shadow:none!important;opacity:.75}
.ide-msg-ai .ide-msg-bubble{border:0;background:transparent;padding:0;box-shadow:none}
.ide-msg-ai .ide-msg-bubble.ide-md{padding:2px 0}
.ide-msg-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px}
.ide-ask{font-size:12px;color:var(--ad-text-2);width:100%}
.ide-ask.muted{color:var(--ad-text-3)}
.ide-ai-composer{
  margin:10px 12px 12px;padding:10px 12px 8px;
  border:1px solid var(--ad-border);border-radius:14px;
  background:var(--ad-card);box-shadow:var(--ad-shadow);
  display:flex;flex-direction:column;gap:8px;
}
.ide-ai-input{
  width:100%;border:0!important;outline:none!important;box-shadow:none!important;
  background:transparent!important;resize:none;min-height:44px;max-height:140px;
  font-size:13px!important;line-height:1.5;color:var(--ad-text)!important;
  padding:2px 2px 0!important;height:auto!important;border-radius:0!important;
}
.ide-ai-input::placeholder{color:var(--ad-text-3)!important}
.ide-ai-composer-bar{
  display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;
}
.ide-ai-bar-left,.ide-ai-bar-right{display:inline-flex;align-items:center;gap:6px}
.ide-ai-chip{
  display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 8px 0 7px;
  border-radius:999px;border:1px solid var(--ad-border);background:var(--ad-bg);
  color:var(--ad-text-2);font-size:12px;font-weight:600;cursor:pointer;
}
.ide-ai-chip:hover{border-color:var(--ad-primary);color:var(--ad-primary)}
.ide-ai-model-wrap{position:relative}
.ide-ai-model{
  display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 6px;
  border:0;background:transparent;color:var(--ad-text-3);font-size:12px;font-weight:600;cursor:pointer;
}
.ide-ai-model:hover{color:var(--ad-text)}
.ide-ai-model-menu{
  position:absolute;left:0;bottom:calc(100% + 6px);min-width:160px;z-index:30;
  background:var(--ad-card);border:1px solid var(--ad-border);border-radius:10px;
  box-shadow:var(--ad-shadow-md);padding:4px;display:flex;flex-direction:column;gap:2px;
}
.ide-ai-model-item{
  border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;
  font-size:12px;color:var(--ad-text-2);cursor:pointer;
}
.ide-ai-model-item:hover,.ide-ai-model-item.on{background:var(--ad-primary-soft);color:var(--ad-primary)}
.ide-ai-icon-btn{
  width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--ad-text-3);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
}
.ide-ai-icon-btn:hover{background:var(--ad-primary-soft);color:var(--ad-primary)}
.ide-ai-send-btn{
  width:30px;height:30px;border:0;border-radius:999px;background:var(--ad-text);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;
}
.ide-ai-send-btn:hover{opacity:.9}
.ide-ai-send-btn.is-stop,
#ide-ai-stop{
  background:var(--ad-bg);color:var(--ad-text);border:1px solid var(--ad-border);
}
.ide-ai-spin{
  width:16px;height:16px;border:2px solid var(--ad-border);border-top-color:var(--ad-primary);
  border-radius:50%;animation:ideSpin .8s linear infinite;
}
@keyframes ideSpin{to{transform:rotate(360deg)}}
html[data-theme="dark"] .ide-ai-composer{background:#1a1f2a;border-color:#2a3140}
html[data-theme="dark"] .ide-ai-chip{background:#12151c;border-color:#2a3140}
html[data-theme="dark"] .ide-ai-send-btn{background:#e6ebf5;color:#12151c}
html[data-theme="dark"] #ide-ai-stop,
html[data-theme="dark"] .ide-ai-send-btn.is-stop{background:#252b38;color:#e6ebf5;border-color:#2a3140}
.ide-ai-composer-actions{display:none!important}
.ide-ai-err{color:var(--ad-danger)}
.ide-ai-typing{
  opacity:.85;font-style:italic;color:var(--ad-text-3);
  display:inline-block;animation:idePulse 1.2s ease-in-out infinite;
}
@keyframes idePulse{0%,100%{opacity:.45}50%{opacity:1}}
.ide-status{
  display:flex;justify-content:flex-end;gap:14px;padding:4px 12px;border-top:1px solid var(--ad-border);
  background:#fafbfd;font-size:12px;color:var(--ad-text-3);
}
/* kill stuck loading masks over editor */
.ide-panel .lyear-loading,.ide-panel .modal-backdrop{display:none!important}
body.ide-open .modal-backdrop,
body.ide-open > .lyear-loading{display:none!important}
/* 弹窗必须压过 lyear-loading(9999)，避免灰罩盖住新建/上传 */
body > .modal{z-index:11050!important}
body > .modal-backdrop{z-index:11040!important}
@media (max-width:960px){
  .ide-main{flex-direction:column}
  .ide-ai{width:100%;border-left:none;border-top:1px solid var(--ad-border);max-height:38vh}
  .ide-list-card{min-height:auto}
}

/* 代码编辑器 · 手机端：代码全屏，AI 底部抽屉 */
@media (max-width:768px){
  body.ide-open .tc-work-body{padding:4px!important}
  .ide-panel{border-radius:10px;min-height:calc(100dvh - 12px);height:calc(100dvh - 12px)}
  .ide-top{padding:8px 10px;gap:8px}
  .ide-top-left{gap:6px;flex:1;min-width:0}
  .ide-top-left strong{
    font-size:13px;max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .ide-top-right{gap:6px}
  .ide-ai-toggle{
    display:inline-flex!important;align-items:center;justify-content:center;
    min-width:40px!important;font-weight:700!important;letter-spacing:.02em;
  }
  .ide-tb-ai{margin-left:auto}
  .ide-theme-sel{max-width:88px;font-size:12px!important;padding-left:6px!important;padding-right:6px!important}
  .ide-toolbar{padding:6px 8px;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .ide-tb-group{flex-shrink:0}
  .ide-tb-opts{display:none}
  .ide-kbd{display:none!important}
  .ide-btn-txt{display:none}
  .ide-toolbar .btn{padding:4px 8px!important;min-width:36px}
  .ide-lint-badge{font-size:11px;padding:2px 6px}
  .ide-main{flex-direction:row;position:relative;flex:1;min-height:0}
  .ide-editor-col{flex:1;min-height:0;width:100%}
  .ide-ai-mask{
    display:none;position:absolute;inset:0;z-index:20;background:rgba(15,20,30,.35);
  }
  body.ide-ai-sheet-on .ide-ai-mask{display:block}
  .ide-ai{
    position:absolute;left:0;right:0;bottom:0;z-index:30;
    width:100%!important;max-height:min(72dvh,560px)!important;height:min(72dvh,560px);
    border-left:none;border-top:1px solid var(--ad-border);
    border-radius:16px 16px 0 0;
    transform:translateY(105%);
    transition:transform .22s ease;
    box-shadow:0 -8px 28px rgba(0,0,0,.18);
  }
  body.ide-ai-sheet-on .ide-ai{transform:translateY(0)}
  .ide-ai-close-m{display:inline-flex!important}
  .ide-diff-float{
    left:8px;right:8px;bottom:10px;transform:none;max-width:none;width:auto;
    flex-wrap:wrap;justify-content:center;gap:8px;padding:8px 10px;
  }
  .ide-diff-actions kbd{display:none}
  .ide-problems{max-height:28vh}
}
@media (min-width:769px){
  .ide-ai-close-m{display:none!important}
  .ide-ai-mask{display:none!important}
}
.ide-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.ide-tb-ai{margin-left:auto}
.ide-ai-toggle{font-weight:700;letter-spacing:.03em;min-width:40px}

/* AI 上线引导 */
.ide-ai-coach{position:fixed;inset:0;z-index:12050;pointer-events:auto}
.ide-ai-coach-catch{position:absolute;inset:0;z-index:0;background:transparent}
.ide-ai-coach-hole{
  position:absolute;z-index:1;border-radius:10px;pointer-events:none;
  box-shadow:0 0 0 9999px rgba(15,23,42,.55);
  background:transparent;
}
.ide-ai-coach-pop{
  position:absolute;z-index:2;background:#fff;color:var(--ad-text);
  border-radius:14px;padding:12px 14px 12px;box-shadow:0 12px 32px rgba(0,0,0,.22);
  border:1px solid var(--ad-border);box-sizing:border-box;
}
.ide-ai-coach-pop strong{display:block;font-size:14px;margin-bottom:4px}
.ide-ai-coach-pop p{margin:0 0 10px;font-size:12px;color:var(--ad-text-2);line-height:1.45}
.ide-ai-coach-arrow{
  position:absolute;top:-7px;width:14px;height:14px;background:#fff;
  border-left:1px solid var(--ad-border);border-top:1px solid var(--ad-border);
  transform:rotate(45deg);
}
.ide-ai-coach-arrow.is-above{top:auto;bottom:-7px;transform:rotate(225deg)}
.ide-ai-coach-target{
  position:relative;z-index:12060!important;
  box-shadow:0 0 0 3px rgba(93,135,255,.55)!important;
  border-color:var(--ad-primary)!important;color:var(--ad-primary)!important;
}
html[data-theme="dark"] .ide-ai-coach-pop{background:#1a2030;border-color:var(--ad-border);color:var(--ad-text)}
html[data-theme="dark"] .ide-ai-coach-arrow{background:#1a2030;border-color:var(--ad-border)}

/* ========== AI 建站 ========== */
body.ad-iframe:has(.ais-wrap),
body.ad-iframe .ais-wrap{margin:0}
.ais-wrap{
  display:flex;flex-direction:column;height:calc(100vh - 16px);min-height:560px;
  margin:0;background:var(--ad-bg);position:relative;box-sizing:border-box;
}
.ais-top{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:10px 14px;background:var(--ad-card);border:1px solid var(--ad-border);border-radius:12px;
  margin:0 0 10px;box-shadow:var(--ad-shadow);
}
.ais-top-left{display:flex;flex-direction:column;gap:2px;min-width:0}
.ais-top-left strong{font-size:15px;color:var(--ad-text)}
.ais-top-sub{font-size:12px;color:var(--ad-text-3)}
.ais-top-right{display:flex;gap:8px;align-items:center}
.ais-device{
  display:inline-flex;padding:3px;border-radius:999px;background:#eef1f6;border:1px solid var(--ad-border);
}
.ais-device button{
  border:0;background:transparent;padding:5px 12px;border-radius:999px;font-size:12px;color:var(--ad-text-2);cursor:pointer;
}
.ais-device button.on{background:#fff;color:var(--ad-primary);font-weight:600;box-shadow:var(--ad-shadow)}
html[data-theme="dark"] .ais-device{background:#1a2030}
html[data-theme="dark"] .ais-device button.on{background:#232a3b}

.ais-island{
  position:fixed;left:50%;top:72px;transform:translateX(-50%) translateY(-8px);
  width:min(360px,86vw);z-index:12000;opacity:0;pointer-events:none;
  background:#1b2230;color:#e8edf5;border-radius:16px;padding:12px 14px 10px;
  box-shadow:0 12px 40px rgba(0,0,0,.28);transition:opacity .2s,transform .2s;
  font-family:inherit;box-sizing:border-box;
}
.ais-island.is-on{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.ais-island-hd{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.ais-island-ico{
  width:28px;height:28px;border-radius:50%;background:rgba(93,135,255,.2);color:#8eb0ff;
  display:inline-flex;align-items:center;justify-content:center;font-size:16px;
}
.ais-island-title{font-weight:600;font-size:13px;flex:1}
.ais-island-x{border:0;background:transparent;color:#9aa6b8;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}
.ais-island-row{display:flex;justify-content:space-between;font-size:12px;color:#9aa6b8;margin-bottom:4px}
.ais-island-msg{font-size:12px;color:#d7dde8;margin-bottom:8px;min-height:1.2em}
.ais-island-bar{height:3px;border-radius:99px;background:#2c3548;overflow:hidden}
.ais-island-bar > i{display:block;height:100%;width:0;background:#5d87ff;border-radius:99px;transition:width .25s}

.ais-ask-modal .modal-title{display:flex;align-items:center;gap:8px;font-size:16px}
.ais-ask-modal .modal-title .mdi{color:var(--ad-primary);font-size:20px}
.ais-ask-q{
  margin:0 0 14px;padding:12px 14px;border-radius:10px;background:#f3f6fb;border:1px solid var(--ad-border);
  color:var(--ad-text);font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word;
}
html[data-theme="dark"] .ais-ask-q{background:#1a2030}
.ais-ask-label{display:block;font-size:12px;color:var(--ad-text-3);margin-bottom:6px}

.ais-body{flex:1;min-height:0;display:flex;gap:10px}
.ais-stage{
  flex:1;min-width:0;display:flex;flex-direction:column;position:relative;
  background:var(--ad-card);border:1px solid var(--ad-border);border-radius:14px;overflow:hidden;
  box-shadow:var(--ad-shadow);
}
.ais-canvas{
  flex:1;min-height:0;margin:14px auto 0;width:100%;max-width:100%;
  position:relative;background:#f3f5f9;border-radius:10px 10px 0 0;overflow:hidden;
  transition:max-width .25s ease;
}
html[data-theme="dark"] .ais-canvas{background:#12161f}
.ais-empty{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:24px;color:var(--ad-text-3);z-index:1;pointer-events:none;
}
.ais-empty-ico{font-size:42px;opacity:.45;margin-bottom:8px}
.ais-empty h3{margin:0 0 6px;font-size:18px;color:var(--ad-text);font-weight:600}
.ais-empty p{margin:0;max-width:360px;font-size:13px;line-height:1.55}
.ais-building{
  position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:28px;background:linear-gradient(180deg,#f7f9fc 0%,#eef2f8 100%);
}
html[data-theme="dark"] .ais-building{background:linear-gradient(180deg,#151922 0%,#12161f 100%)}
.ais-building-skel{
  width:min(520px,92%);background:#fff;border-radius:12px;padding:16px;border:1px solid var(--ad-border);
  box-shadow:var(--ad-shadow);margin-bottom:14px;
}
html[data-theme="dark"] .ais-building-skel{background:#1a2030}
.ais-skel-nav,.ais-skel-hero,.ais-skel-row i,.ais-skel-line{
  border-radius:8px;background:linear-gradient(90deg,#e8edf5 25%,#f4f7fb 50%,#e8edf5 75%);
  background-size:200% 100%;animation:aisShimmer 1.2s ease infinite;
}
html[data-theme="dark"] .ais-skel-nav,html[data-theme="dark"] .ais-skel-hero,
html[data-theme="dark"] .ais-skel-row i,html[data-theme="dark"] .ais-skel-line{
  background:linear-gradient(90deg,#232a3b 25%,#2c3548 50%,#232a3b 75%);background-size:200% 100%;
}
.ais-skel-nav{height:14px;width:42%;margin-bottom:14px}
.ais-skel-hero{height:88px;width:100%;margin-bottom:14px}
.ais-skel-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px}
.ais-skel-row i{display:block;height:56px}
.ais-skel-line{height:10px;width:88%;margin-bottom:8px}
.ais-skel-line.short{width:56%}
.ais-building-tip{margin:0;font-size:13px;color:var(--ad-text-2);font-weight:500}
@keyframes aisShimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
.ais-frame{
  width:100%;height:100%;border:0;background:#fff;display:none;
}
.ais-frame.is-on{display:block}
.ais-composer{
  padding:12px 14px 14px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.9) 30%);
  position:relative;z-index:2;
}
html[data-theme="dark"] .ais-composer{background:linear-gradient(180deg,transparent,rgba(18,22,31,.92) 30%)}
.ais-pages{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 14px 0;position:relative;z-index:5;
  pointer-events:auto;
}
.ais-page-tab{
  border:1px solid var(--ad-border);background:var(--ad-card);color:var(--ad-text-2);
  border-radius:8px;padding:4px 10px;font-size:12px;cursor:pointer;line-height:1.4;
  pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.ais-page-tab:hover{border-color:var(--ad-primary);color:var(--ad-primary)}
.ais-page-tab.on{background:var(--ad-primary-soft);border-color:var(--ad-primary);color:var(--ad-primary);font-weight:600}
.ais-pages-meta{margin-left:auto;font-size:11px;color:var(--ad-text-3)}
.ais-composer-inner{
  display:flex;align-items:center;gap:8px;padding:8px 10px;
  background:var(--ad-card);border:1px solid var(--ad-border);border-radius:999px;box-shadow:var(--ad-shadow-md);
}
.ais-model{
  flex-shrink:0;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:11px;font-weight:600;color:var(--ad-primary);background:var(--ad-primary-soft);
  padding:4px 8px;border-radius:999px;
}
.ais-input{
  flex:1;min-width:0;border:0!important;outline:none;background:transparent!important;
  height:34px!important;box-shadow:none!important;font-size:13px!important;padding:0 4px!important;
}
.ais-send,.ais-stop{
  width:36px;height:36px;border-radius:50%;border:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
}
.ais-send{background:var(--ad-primary);color:#fff}
.ais-send:hover{filter:brightness(1.05)}
.ais-stop{background:#2a3140;color:#fff}

.ais-props{
  width:280px;flex-shrink:0;background:var(--ad-card);border:1px solid var(--ad-border);
  border-radius:14px;box-shadow:var(--ad-shadow);display:flex;flex-direction:column;min-height:0;
}
.ais-props-hd{
  padding:12px 14px;border-bottom:1px solid var(--ad-border);font-weight:600;font-size:13px;color:var(--ad-text);
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.ais-props-close{display:none;border:0;background:transparent;color:var(--ad-text-3);font-size:22px;line-height:1;padding:0 4px;cursor:pointer}
.ais-props-mask{display:none}
.ais-props-bd{padding:12px 14px;overflow:auto;flex:1}
.ais-props-hint{margin:24px 0;text-align:center;color:var(--ad-text-3);font-size:13px;line-height:1.5}
.ais-props-tag{font-size:12px;color:var(--ad-primary);font-weight:600;margin-bottom:10px}
.ais-props-note{margin:10px 0 0;font-size:12px;color:var(--ad-text-3);line-height:1.45}
.ais-field{margin-bottom:10px}
#ais-p-apply{margin-top:4px}
.ais-field label{display:block;font-size:12px;color:var(--ad-text-3);margin-bottom:4px}
.ais-field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ais-pub-modes{display:flex;flex-direction:column;gap:8px}
.ais-pub-mode{font-size:13px;color:var(--ad-text-2);font-weight:500}
.ais-dir-list{
  margin-top:8px;max-height:180px;overflow:auto;border:1px solid var(--ad-border);
  border-radius:8px;background:#fafbfd;padding:6px;
}
html[data-theme="dark"] .ais-dir-list{background:#151922}
.ais-dir-crumb{font-size:12px;color:var(--ad-text-3);padding:4px 6px}
.ais-dir-item{
  display:flex;align-items:center;gap:6px;width:100%;text-align:left;border:0;background:transparent;
  padding:6px 8px;border-radius:6px;font-size:13px;color:var(--ad-text);cursor:pointer;
}
.ais-dir-item:hover{background:var(--ad-primary-soft);color:var(--ad-primary)}

/* AI 建站 · 平板/手机共用：属性默认收起，点选元素再弹出 */
@media (max-width:960px){
  .ais-wrap{height:auto;min-height:0}
  .ais-body{flex-direction:column;gap:0;flex:1;min-height:0;position:relative}
  .ais-canvas{min-height:360px}
  .ais-top-sub{display:none}
  .ais-props-mask{
    display:none;position:fixed;inset:0;z-index:25;background:rgba(15,20,30,.32);
  }
  .ais-body:has(.ais-props.is-open) .ais-props-mask,
  .ais-props.is-open ~ .ais-props-mask{display:block!important}
  .ais-props{
    position:fixed!important;left:0!important;right:0!important;bottom:0!important;
    width:100%!important;max-height:min(62dvh,480px)!important;height:auto!important;
    border-radius:16px 16px 0 0!important;margin:0!important;z-index:30!important;
    display:none!important;
    box-shadow:0 -8px 28px rgba(0,0,0,.16);
  }
  .ais-props.is-open{
    display:flex!important;
    animation:aisPropsUp .22s ease;
  }
  .ais-props-close{display:inline-flex!important}
}
@keyframes aisPropsUp{
  from{transform:translateY(100%)}
  to{transform:translateY(0)}
}

/* AI 建站 · 手机细化 */
@media (max-width:768px){
  .ais-wrap{
    height:calc(100dvh - 8px);min-height:0;margin:0;padding:0;
  }
  .ais-top{
    padding:8px 10px;margin:0 0 8px;gap:8px;border-radius:10px;
    display:grid;grid-template-columns:1fr auto;grid-template-areas:"title actions" "device device";
  }
  .ais-top-left{grid-area:title}
  .ais-top-right{grid-area:actions;justify-self:end}
  .ais-device{grid-area:device;justify-self:stretch;width:100%;display:flex}
  .ais-device button{flex:1;padding:6px 0;font-size:12px}
  .ais-top-right .btn{padding:4px 10px!important;font-size:12px!important}
  .ais-stage{
    flex:1;min-height:0;border-radius:12px;display:flex;flex-direction:column;
  }
  .ais-canvas{
    flex:1;min-height:0;margin:0;border-radius:0;height:auto;
  }
  .ais-empty{padding:18px 16px}
  .ais-empty h3{font-size:16px}
  .ais-empty p{font-size:12px}
  .ais-pages{
    padding:6px 10px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:6px;
  }
  .ais-pages-meta{display:none}
  .ais-page-tab{flex-shrink:0}
  .ais-composer{padding:8px 10px 10px}
  .ais-composer-inner{border-radius:14px;padding:6px 8px}
  .ais-model{max-width:72px;font-size:10px;padding:3px 6px}
  .ais-input{font-size:14px!important;height:36px!important}
  .ais-island{width:min(340px,90vw)!important;top:56px!important}
}
@media (min-width:961px){
  .ais-props-close{display:none!important}
  .ais-props-mask{display:none!important}
}
