:root{
  --bg:#f7fbfb;
  --panel:#ffffff;
  --soft:#f2faf9;
  --line:#e4efef;
  --text:#17251f;
  --muted:#72817b;
  --green:#0f9f96;
  --green-soft:#e5f8f6;
  --forest:#08746f;
  --forest-deep:#075f5b;
  --mint:#c8f1ea;
  --mint-soft:#eefdfa;
  --mint-mid:#d8f8f3;
  --mint-line:rgba(200,241,234,.22);
  --cyan:#0f9f96;
  --cyan-2:#22c7bd;
  --cyan-soft:#e5f8f6;
  --cyan-line:#cdece8;
  --amber:#d9982e;
  --amber-soft:#fff5e4;
  --blue:#4c82c6;
  --blue-soft:#edf5ff;
  --rose:#d86d6d;
  --rose-soft:#fff0f0;
  --shadow:0 14px 34px rgba(22,66,52,.08);
  --radius:20px;
}

/* 069A / v1.4.5 global warm document shell token bridge. */
:root{
  --paper-warm:#faf7f0;
  --paper-mid:#f2ede3;
  --paper-dark:#e8e0d0;
  --paper-soft:#fffdf8;
  --ink-deep:#2c2416;
  --ink-mid:#5c5040;
  --ink-light:#8a7d6a;
  --ochre:#b87333;
  --ochre-light:#f5e6d0;
  --ochre-dim:#d4956a;
  --moss:#5a7055;
  --moss-light:#e8f0e5;
  --moss-dim:#7a9a75;
  --charcoal:#3d3830;
  --candidate-bg:#fdf5e0;
  --candidate-border:#e8c87a;
  --pending-bg:#f0ede8;
  --pending-border:#c8bfb0;
  --divider:rgba(44,36,22,.10);
  --bg:var(--paper-warm);
  --panel:#fffdf8;
  --soft:var(--paper-mid);
  --line:var(--divider);
  --text:var(--ink-deep);
  --muted:var(--ink-light);
  --green:var(--moss);
  --green-soft:var(--moss-light);
  --forest:var(--charcoal);
  --forest-deep:var(--ink-deep);
  --mint:var(--moss-light);
  --mint-soft:var(--paper-mid);
  --mint-mid:var(--moss-light);
  --mint-line:rgba(90,112,85,.18);
  --cyan:var(--moss);
  --cyan-2:var(--moss-dim);
  --cyan-soft:var(--moss-light);
  --cyan-line:rgba(90,112,85,.22);
  --amber:var(--ochre);
  --amber-soft:var(--ochre-light);
  --blue:#627c89;
  --blue-soft:#eef2f1;
  --shadow:0 8px 32px rgba(44,36,22,.10);
  --radius:8px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Microsoft YaHei","PingFang SC",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 8% 6%, rgba(220,248,245,.72), transparent 26%),
    radial-gradient(circle at 86% 8%, rgba(255,247,229,.72), transparent 28%),
    linear-gradient(180deg,#ffffff 0%,var(--bg) 42%,#f7fbfb 100%);
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select,
textarea{
  font-size:14px;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
select{
  line-height:1.45;
}
textarea{
  line-height:1.6;
}
.shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:244px minmax(0,1fr);
}
.shell-sidebar{
  position:sticky;
  top:0;
  height:100vh;
  padding:24px 18px;
  border-right:1px solid #e7f0ef;
  background:
    radial-gradient(circle at 0% 0%, rgba(220,249,245,.72), transparent 34%),
    linear-gradient(180deg,#ffffff 0%,#fbfefe 54%,#f6fbfb 100%);
  backdrop-filter:blur(12px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:22px;
  box-shadow:8px 0 28px rgba(31,75,58,.035);
}
.sidebar-brand{
  display:flex;
  align-items:center;
  gap:14px;
  padding:6px 6px 2px;
}
.brand-mark{
  width:62px;
  height:62px;
  flex:0 0 auto;
}
.brand-symbol{
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--forest-deep);
  filter:drop-shadow(0 12px 22px rgba(7,95,91,.16));
}
.brand-symbol img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:none;
  opacity:1;
}
.sidebar-brand-copy strong{
  display:block;
  font-size:18px;
  line-height:1.18;
  letter-spacing:.01em;
  color:var(--forest-deep);
}
.sidebar-brand-copy small{
  color:var(--forest-deep);
  font-size:12px;
  font-weight:800;
}
.sidebar-nav{
  display:grid;
  gap:10px;
  align-content:start;
  min-height:0;
  overflow:auto;
  padding-right:2px;
}
.sidebar-nav::-webkit-scrollbar{
  width:0;
}
.sidebar-group{
  display:grid;
  gap:8px;
}
.sidebar-link{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  gap:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid transparent;
  background:transparent;
  color:#52625b;
  transition:all .18s ease;
  align-items:center;
}
.sidebar-link-copy{
  display:grid;
  gap:0;
  min-width:0;
}
.sidebar-link strong{
  font-size:14px;
}
.sidebar-link small{
  color:#97a29e;
  font-size:11px;
  line-height:1.5;
}
.sidebar-link-icon{
  width:34px;
  height:34px;
  border-radius:11px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#6c7a74;
  background:transparent;
  border:1px solid transparent;
  flex-shrink:0;
}
.sidebar-link-icon svg{
  width:20px;
  height:20px;
}
.sidebar-link:hover{
  background:#eefaf9;
  border-color:#d9eeec;
  color:#0a817a;
  box-shadow:none;
}
.sidebar-link:hover .sidebar-link-icon{
  color:var(--green);
  background:#e4f8f6;
  border-color:#d6efec;
}
.sidebar-link.active{
  background:linear-gradient(90deg,#e4f8f6,#f4fcfb);
  color:#087c76;
  box-shadow:none;
  border-color:#d8eeec;
}
.sidebar-link.active small{
  color:#648073;
}
.sidebar-link.active .sidebar-link-icon{
  background:#10a69d;
  color:#fff;
  border-color:transparent;
  box-shadow:0 8px 16px rgba(15,159,150,.22);
}
.sidebar-children{
  display:grid;
  gap:6px;
  padding:0 0 2px 54px;
}
.sidebar-child-link{
  display:flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:12px;
  color:#73827c;
  font-size:13px;
  font-weight:700;
  letter-spacing:.01em;
}
.sidebar-child-link:hover{
  background:#eefaf9;
  color:#0a8b83;
}
.sidebar-child-link.active{
  background:#e4f8f6;
  color:#08746f;
}
.sidebar-account{
  position:relative;
}
.sidebar-account-toggle{
  width:100%;
  min-height:54px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:18px;
  border:1px solid #e2eee7;
  background:#ffffff;
  color:#213630;
  cursor:pointer;
  transition:all .18s ease;
}
.sidebar-account-toggle:hover,
.sidebar-account-toggle[aria-expanded="true"]{
  background:#f3fbfa;
  border-color:#d2eee9;
  box-shadow:0 14px 30px rgba(31,75,58,.09);
}
.sidebar-account-copy{
  min-width:0;
  display:grid;
  gap:2px;
  text-align:left;
}
.sidebar-account-copy strong{
  color:#23362f;
  font-size:13px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sidebar-account-copy small{
  color:#7d8e86;
  font-size:11px;
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sidebar-account-menu{
  position:absolute;
  left:0;
  bottom:66px;
  width:100%;
  display:none;
  padding:10px;
  border-radius:18px;
  border:1px solid #dbe9e5;
  background:rgba(255,255,255,.96);
  box-shadow:0 20px 44px rgba(6,45,43,.24);
  backdrop-filter:blur(14px);
  z-index:30;
}
.sidebar-account-menu.open{
  display:grid;
  gap:4px;
}
.sidebar-account-card{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 8px 10px;
  border-bottom:1px solid #edf3f1;
  margin-bottom:4px;
}
.user-avatar.large{
  width:36px;
  height:36px;
  font-size:14px;
}
.sidebar-account-card strong{
  display:block;
  color:var(--forest);
  font-size:14px;
}
.sidebar-account-card small{
  display:block;
  color:#7d8b85;
  font-size:11px;
  font-weight:800;
  max-width:150px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sidebar-account-menu a,
.sidebar-account-menu button{
  width:100%;
  min-height:36px;
  display:flex;
  align-items:center;
  padding:0 10px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#41554f;
  font-size:13px;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}
.sidebar-account-menu a:hover,
.sidebar-account-menu button:hover{
  background:#eefdfa;
  color:var(--forest);
}
.shell-content{
  min-width:0;
  display:grid;
  align-content:start;
  position:relative;
}
.shell-topbar{
  position:sticky;
  top:0;
  z-index:20;
  padding:8px 24px 0;
  background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.86) 78%,rgba(255,255,255,0) 100%);
  backdrop-filter:blur(12px);
}
.shell-topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 0 8px;
}
.shell-topbar-left{
  display:flex;
  align-items:center;
  gap:10px;
}
.topbar-copy{
  display:grid;
  gap:2px;
}
.topbar-copy small{
  color:var(--muted);
  font-weight:900;
  letter-spacing:.02em;
  font-size:12px;
}
.user-nav{
  display:flex;
  align-items:center;
  gap:8px;
}
.user-nav .btn{
  min-height:36px;
  padding:0 12px;
  border-radius:12px;
  font-size:13px;
}
.user-chip{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  box-shadow:0 6px 14px rgba(33,53,38,.05);
}
.user-avatar{
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--avatar-bg,#d9efe1);
  color:var(--avatar-accent,var(--green));
  display:grid;
  place-items:center;
  font-weight:900;
  font-size:13px;
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 8px 18px var(--avatar-soft,rgba(33,53,38,.08));
  background-size:cover;
  background-position:center;
  overflow:hidden;
}
.user-avatar.avatar-has-image{
  background-color:#fff;
  color:transparent;
}
.user-avatar.avatar-frame-stamp{
  outline:1px dashed var(--avatar-accent,var(--green));
  outline-offset:2px;
}
.user-avatar.avatar-frame-gallery{
  border-radius:10px;
  border:2px solid #fff;
  box-shadow:0 0 0 1px rgba(15,108,107,.14), 0 8px 18px var(--avatar-soft,rgba(33,53,38,.1));
}
.user-text strong{display:block;font-size:13px;line-height:1.2}
.user-text small{display:block;font-size:11px;line-height:1.2;color:#83918a;font-weight:800}
.design-context-nav-host{
  position:relative;
  z-index:19;
  pointer-events:auto;
}
.topbar-context-host{
  display:flex;
  align-items:center;
}
.design-context-popover{
  position:relative;
  width:max-content;
}
.design-context-toggle{
  width:36px;
  height:36px;
  padding:0;
  border-radius:12px;
  border:1px solid rgba(191,238,232,.9);
  background:rgba(255,255,255,.92);
  color:var(--forest);
  box-shadow:0 10px 22px rgba(15,108,107,.10);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  display:flex;
  align-items:center;
  justify-content:center;
}
.design-context-toggle svg{
  width:18px;
  height:18px;
}
.design-context-toggle:hover{
  transform:translateY(-1px);
  border-color:var(--cyan-line);
  background:var(--cyan-soft);
  box-shadow:0 12px 26px rgba(35,198,197,.14);
}
.design-context-toggle[aria-expanded="true"]{
  background:linear-gradient(135deg,var(--cyan),var(--cyan-2));
  border-color:transparent;
  color:#fff;
  box-shadow:0 12px 24px rgba(35,198,197,.24);
}
.design-context-menu{
  position:absolute;
  top:44px;
  right:0;
  display:grid;
  gap:10px;
  min-width:340px;
  max-width:560px;
  padding:14px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(191,238,232,.82);
  box-shadow:0 20px 40px rgba(15,108,107,.14);
  backdrop-filter:blur(12px);
}
.design-context-menu[hidden]{
  display:none !important;
}
.design-context-meta,
.design-context-group{
  display:grid;
  gap:6px;
}
.design-context-meta small,
.design-context-group small{
  display:block;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#8aa39e;
}
.design-context-meta strong{
  color:var(--forest);
  font-size:13px;
}
.design-context-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.design-context-chip{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid #dde8e5;
  background:#f6fbfa;
  color:#6e7e7a;
  font-size:12px;
  font-weight:700;
  transition:all .18s ease;
}
.design-context-chip:hover{
  border-color:#bfeee8;
  color:var(--cyan);
  background:var(--cyan-soft);
}
.design-context-chip.active{
  background:linear-gradient(135deg,var(--cyan),var(--cyan-2));
  border-color:transparent;
  color:#fff;
  box-shadow:0 8px 16px rgba(35,198,197,.22);
}
.design-context-empty{
  color:#98a6a2;
  font-size:12px;
  line-height:1.6;
}
.page{
  width:100%;
  margin:0;
  padding:0 24px 32px;
}
.page-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:18px;
}
.page-title{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.page-title small{
  color:#7d8e86;
  font-weight:800;
  font-size:12px;
  letter-spacing:.02em;
}
.page-title h1{
  margin:0;
  font-size:32px;
  letter-spacing:-.02em;
  line-height:1.08;
  color:#17251f;
}
.page-title p{
  margin:0;
  color:#87958f;
  font-size:13px;
  line-height:1.55;
}
.head-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:0 16px;
  border-radius:13px;
  border:1px solid var(--line);
  background:#fff;
  color:#52645c;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(31,75,58,.06);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease;
}
.btn:hover{
  transform:translateY(-1px);
  border-color:#cfe9db;
  background:#eefaf8;
  color:var(--green);
  box-shadow:0 12px 24px rgba(31,75,58,.08);
}
.btn.primary{
  background:linear-gradient(135deg,#0f9f96,#22c7bd);
  border-color:transparent;
  color:#fff;
  box-shadow:0 10px 22px rgba(15,159,150,.24);
}
.btn.primary:hover{
  background:linear-gradient(135deg,#0b9189,#1cbfb5);
  color:#fff;
  box-shadow:0 14px 28px rgba(15,159,150,.28);
}
.btn.soft{
  background:#fff;
}
.grid-2{display:grid;grid-template-columns:1.05fr .95fr;gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cards{display:grid;gap:16px}
.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 16px 36px rgba(31,75,58,.075);
  padding:18px;
}
.editor-card{
  background:#ffffff;
  border-color:#e3eee8;
  box-shadow:0 16px 36px rgba(31,75,58,.075);
}
.editor-card h2,
.editor-card h3{
  color:#17251f;
}
.panel-card{
  background:#ffffff;
  border-color:#e3eee8;
  box-shadow:0 16px 36px rgba(31,75,58,.075);
}
.status-card{
  background:#ffffff;
  border-color:#e3eee8;
  box-shadow:0 16px 36px rgba(31,75,58,.075);
}
.card h2,.card h3{
  margin:0 0 12px;
  font-size:18px;
  color:#17251f;
}
.card h3{font-size:18px}
.muted{color:var(--muted)}
.detail-text{
  color:#74847d;
}
.guide-text{
  color:#8d9a95;
  font-size:12px;
  line-height:1.65;
}
.tiny{font-size:12px}
.hero{
  background:linear-gradient(135deg,#fffefb,#f4fffd);
  border-color:#ecf2f0;
}
.hero-meta,.meta-row,.badges,.inline-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.pill,.badge,.status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
}
.pill{
  border:1px solid #e7eee9;
  background:#fff;
  color:#5f6f68;
}
.badge.green,.status.green{background:var(--green-soft);color:var(--green)}
.badge.amber,.status.amber{background:var(--amber-soft);color:var(--amber)}
.badge.blue,.status.blue{background:var(--blue-soft);color:var(--blue)}
.badge.rose,.status.rose{background:var(--rose-soft);color:var(--rose)}
.badge.slate,.status.slate{background:#eef3f2;color:#6f817c}
.actions-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}
.action-card{
  padding:20px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:0 14px 30px rgba(31,75,58,.07);
  display:grid;
  gap:12px;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.nav-card{
  background:#ffffff;
  border-color:#e3eee8;
  box-shadow:0 14px 30px rgba(31,75,58,.07);
}
.nav-card strong{
  color:#17251f;
}
.nav-card:hover{
  border-color:#ccead8;
  transform:translateY(-2px);
  box-shadow:0 18px 34px rgba(31,75,58,.09);
}
.action-card strong{font-size:20px}
.list{
  display:grid;
  gap:12px;
}
.list-item{
  padding:14px;
  border:1px solid #e7eee9;
  border-radius:16px;
  background:#fff;
}
.menu-item{
  background:#fff;
  border-color:#e3eee8;
}
.list-item.active{
  border-color:#c9ecd8;
  background:#eefaf3;
}
.list-item-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.identity-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.identity-item{
  padding:14px;
  border:1px solid #e2eee7;
  border-radius:16px;
  background:#ffffff;
  box-shadow:0 12px 24px rgba(31,75,58,.06);
}
.identity-item small{
  display:block;
  color:var(--forest);
  font-size:12px;
  font-weight:900;
  margin-bottom:6px;
}
.identity-item strong{
  display:block;
  line-height:1.5;
  color:#17251f;
}
.field{
  display:grid;
  gap:6px;
}
.field label{
  font-size:13px;
  color:var(--forest);
  font-weight:900;
}
.field input,.field select,.field textarea{
  width:100%;
  padding:11px 12px;
  border:1px solid #dfe9e4;
  border-radius:14px;
  background:#fff;
  color:var(--text);
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;
  border-color:#95e1dc;
  background:#fff;
  box-shadow:0 0 0 4px rgba(15,159,150,.10);
}
.field textarea{
  min-height:96px;
  resize:vertical;
}
.table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.table th,.table td{
  padding:10px 8px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  text-align:left;
}
.table th{
  color:var(--muted);
  font-size:12px;
  letter-spacing:.03em;
  font-weight:900;
}
.split{
  display:grid;
  grid-template-columns:1fr 360px;
  gap:16px;
}
.shell-content-with-assistant{
  min-width:0;
}
.shell-workspace{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,420px);
  gap:18px;
  align-items:start;
  padding:0 18px 28px 0;
  transition:grid-template-columns .22s ease, gap .22s ease;
}
.shell-workspace.assistant-collapsed{
  grid-template-columns:minmax(0,1fr) 54px;
  gap:10px;
}
.shell-main{
  min-width:0;
}
.assistant-side-panel{
  position:sticky;
  top:68px;
  height:calc(100vh - 84px);
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  gap:8px;
  overflow:hidden;
  background:#fff;
  border-left:1px solid rgba(191,238,232,.82);
  box-shadow:-18px 0 40px rgba(15,108,107,.08);
  padding:10px 12px 12px;
  z-index:15;
}
.assistant-side-panel:not(.open){
  display:none;
}
.assistant-side-peek{
  position:sticky;
  top:92px;
  align-self:start;
  justify-self:end;
  width:46px;
  min-height:156px;
  border:none;
  border-radius:18px 0 0 18px;
  background:linear-gradient(180deg,var(--cyan),var(--cyan-2));
  color:#fff;
  font-weight:900;
  letter-spacing:.08em;
  writing-mode:vertical-rl;
  box-shadow:0 14px 32px rgba(35,198,197,.24);
  cursor:pointer;
}
.assistant-panel-head{
  margin-bottom:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  column-gap:12px;
}
.assistant-panel-title{
  display:grid;
  gap:4px;
  min-width:0;
  flex:1 1 auto;
}
.assistant-panel-title h3{
  margin:0;
  font-size:15px;
  line-height:1.25;
}
.assistant-panel-meta{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.assistant-panel-tools{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  flex-wrap:nowrap;
  justify-content:flex-end;
}
.assistant-pref-inline{
  color:#7e8e8b;
  font-size:11px;
  font-weight:700;
}
.assistant-preset-inline{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#7e8e8b;
  font-size:11px;
  font-weight:700;
}
.assistant-preset-select{
  border:none;
  background:transparent;
  color:#5f726f;
  font-size:12px;
  font-weight:700;
  outline:none;
  padding:0;
}
.assistant-panel-tools .btn{
  min-height:32px;
  padding:0 10px;
  border-radius:12px;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.assistant-panel-tools .btn.soft{
  color:#6a6793;
  background:#ffffff;
}
.assistant-session-manager{
  position:relative;
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
}
.assistant-session-btn{
  height:32px;
  border:1px solid #d8ebe7;
  border-radius:999px;
  background:#fffefa;
  color:#0d6f68;
  font-size:12px;
  font-weight:900;
  line-height:1;
  padding:0 10px;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(19,75,70,.06);
}
.assistant-session-btn:hover{
  border-color:#9ee1d8;
  background:#f1fffb;
}
.assistant-session-btn.current{
  max-width:178px;
  display:flex;
  align-items:center;
  gap:5px;
  background:#f5fffc;
}
.assistant-session-btn.current span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.assistant-session-btn.current i{
  flex:0 0 auto;
  font-style:normal;
  color:#809a96;
}
.assistant-session-menu{
  position:absolute;
  top:34px;
  right:0;
  z-index:120;
  width:270px;
  padding:8px;
  border:1px solid #dcece8;
  border-radius:16px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 45px rgba(22,72,66,.18);
  backdrop-filter:blur(14px);
}
.assistant-session-menu header{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:10px;
  padding:1px 3px 6px;
}
.assistant-session-menu header strong{
  color:#113c39;
  font-size:13px;
}
.assistant-session-menu header small{
  color:#7b918d;
  font-size:11px;
  white-space:nowrap;
}
[data-assistant-session-list]{
  max-height:248px;
  overflow:auto;
  display:grid;
  gap:5px;
  padding-right:2px;
}
.assistant-session-row{
  position:relative;
  width:100%;
  border:1px solid #e3efec;
  border-radius:12px;
  background:#fbfefd;
  display:grid;
  grid-template-columns:minmax(0,1fr) 28px;
  align-items:center;
  overflow:visible;
}
.assistant-session-row.active{
  border-color:#21a99d;
  background:#edfffb;
}
.assistant-session-row.open{
  border-color:#9fdcd5;
}
.assistant-session-item{
  min-width:0;
  padding:6px 0 6px 8px;
  border:0;
  background:transparent;
  text-align:left;
  cursor:pointer;
  display:grid;
  gap:2px;
}
.assistant-session-item strong{
  color:#123d3a;
  font-size:12px;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.assistant-session-item span,
.assistant-session-item small{
  color:#6b817d;
  font-size:10.5px;
  line-height:1.22;
}
.assistant-session-more{
  width:23px;
  height:23px;
  margin-right:5px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#6c817d;
  font-size:15px;
  font-weight:900;
  cursor:pointer;
  letter-spacing:-2px;
  line-height:1;
}
.assistant-session-more:hover,
.assistant-session-row.open .assistant-session-more{
  background:#dff7f2;
  color:#087b73;
}
.assistant-session-actions{
  position:absolute;
  top:28px;
  right:6px;
  z-index:130;
  width:104px;
  padding:5px;
  border:1px solid #dcece8;
  border-radius:12px;
  background:#ffffff;
  box-shadow:0 14px 34px rgba(17,63,58,.14);
  display:grid;
  gap:4px;
}
.assistant-session-actions button{
  border:0;
  border-radius:9px;
  background:transparent;
  padding:7px 8px;
  color:#163f3c;
  font-size:12px;
  font-weight:800;
  text-align:left;
  cursor:pointer;
}
.assistant-session-actions button:hover{
  background:#eefbf8;
  color:#087b73;
}
.assistant-session-actions button[data-assistant-session-action="delete"]{
  color:#9c3c2e;
}
.assistant-session-actions button[data-assistant-session-action="delete"]:hover{
  background:#fff1ee;
}
.assistant-collapse-btn{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg,var(--cyan),var(--cyan-2));
  color:#fff;
  box-shadow:0 10px 22px rgba(15,159,150,.22);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.assistant-collapse-btn span{
  display:block;
  transform:translateX(1px);
  font-size:14px;
  line-height:1;
}
.assistant-collapse-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 26px rgba(15,159,150,.28);
  filter:saturate(1.05);
}
.assistant-panel-card{
  margin:0;
  padding:12px;
}
.assistant-section-title{
  font-size:12px;
  font-weight:900;
  color:var(--muted);
  letter-spacing:.03em;
  margin-bottom:8px;
}
.assistant-upload-dropzone{
  display:grid;
  gap:6px;
  padding:8px 10px;
  border-radius:16px;
  border:1px dashed #bfeee8;
  background:#fff;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.assistant-upload-dropzone:hover{
  border-color:var(--cyan);
  box-shadow:0 10px 18px rgba(35,198,197,.10);
  transform:translateY(-1px);
}
.assistant-upload-dropzone.drag-over{
  border-color:var(--cyan);
  box-shadow:0 16px 30px rgba(35,198,197,.18);
  background:#f4fffc;
  transform:translateY(-1px);
}
.assistant-upload-input{
  display:none;
}
.assistant-upload-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.assistant-upload-list.compact{
  min-height:0;
}
.assistant-upload-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  max-width:100%;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid #e1ece8;
  background:#fbfdfd;
}
.assistant-upload-chip.pending{
  border-color:rgba(255,177,93,.34);
  background:#fffdf8;
}
.assistant-upload-chip strong{
  display:block;
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  color:var(--forest);
}
.assistant-upload-list.compact .assistant-upload-empty,
.assistant-upload-empty{
  color:#95a4a1;
  font-size:12px;
  line-height:1.6;
}
.assistant-upload-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:3px 8px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  border:1px solid rgba(35,198,197,.18);
  background:#eefbf8;
  color:#0f7c75;
}
.assistant-upload-status.pending_local{
  border-color:rgba(255,177,93,.28);
  background:#fff7df;
  color:#a76413;
}
.assistant-upload-status.uploading{
  border-color:rgba(35,198,197,.22);
  background:#eafbf7;
  color:#0f7c75;
}
.assistant-upload-status.fallback,
.assistant-upload-status.unsupported{
  border-color:rgba(255,177,93,.24);
  background:#fff7ef;
  color:#b66d1f;
}
.assistant-upload-status.empty{
  border-color:rgba(156,174,169,.22);
  background:#f7fbfa;
  color:#7f908d;
}
.assistant-upload-remove{
  width:18px;
  height:18px;
  border:0;
  border-radius:999px;
  background:#e9f5f2;
  color:#4f6b67;
  font-size:13px;
  line-height:18px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.assistant-upload-remove:hover{
  background:#d8efea;
  color:#0b6f69;
}
.assistant-generated-section{
  flex:1 1 100%;
  display:grid;
  gap:8px;
  margin-top:2px;
}
.assistant-generated-title{
  color:#54736f;
  font-size:12px;
  font-weight:800;
}
.assistant-generated-card{
  width:100%;
  border:1px solid #dcece8;
  border-radius:14px;
  background:#fbfefd;
  overflow:hidden;
}
.assistant-generated-card summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 11px;
}
.assistant-generated-card summary::-webkit-details-marker{
  display:none;
}
.assistant-generated-card summary strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#123b3a;
  font-size:12px;
}
.assistant-generated-card summary span{
  flex:0 0 auto;
  padding:3px 7px;
  border-radius:999px;
  background:#eefbf8;
  color:#0f7c75;
  font-size:10px;
  font-weight:800;
}
.assistant-generated-card p,
.assistant-generated-card ul{
  margin:0;
  padding:0 11px 10px;
  color:#4c6460;
  font-size:12px;
  line-height:1.55;
}
.assistant-generated-card ul{
  padding-left:26px;
}
.assistant-generated-source{
  color:#8a7a5d !important;
}
.assistant-generated-files{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  padding:0 11px 11px;
}
.assistant-generated-files a{
  padding:5px 8px;
  border-radius:999px;
  border:1px solid #dce8e5;
  color:#087b73;
  font-size:11px;
  font-weight:800;
  text-decoration:none;
  background:#fff;
}
.assistant-upload-input-hidden{
  display:none;
}
.drawer-toggle{
  position:fixed;
  right:18px;
  bottom:18px;
  width:58px;
  height:58px;
  border-radius:50%;
  border:none;
  background:linear-gradient(135deg,#0f9f96,#075f5b);
  color:#fff;
  font-size:26px;
  box-shadow:0 14px 34px rgba(15,159,150,.28);
  cursor:pointer;
  z-index:50;
}
.drawer{
  position:fixed;
  right:18px;
  bottom:88px;
  width:min(360px,calc(100vw - 24px));
  max-height:72vh;
  overflow:auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 24px 60px rgba(16,35,22,.18);
  padding:18px;
  z-index:49;
  display:none;
}
.drawer.open{display:block}
.drawer-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
}
.drawer-head h3{margin:0;font-size:18px}
.assistant-mode-hint{
  color:#8ca09b;
  font-size:11px;
  line-height:1.6;
}
.assistant-chat{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:0;
  overflow:auto;
  padding-right:4px;
}
.assistant-message{
  display:flex;
}
.assistant-message.user{
  justify-content:flex-end;
}
.assistant-message.assistant{
  justify-content:flex-start;
}
.assistant-bubble{
  max-width:92%;
  border-radius:16px;
  padding:12px 14px;
  border:1px solid var(--line);
  background:#f8fbfb;
  box-shadow:0 8px 20px rgba(15,108,107,.08);
}
.assistant-message.user .assistant-bubble{
  background:linear-gradient(135deg,var(--cyan),var(--cyan-2));
  border-color:transparent;
  color:#fff;
}
.assistant-message.soft-failure .assistant-bubble{
  background:#fffaf0;
  border-color:#ead6ad;
  box-shadow:0 10px 26px rgba(118,86,31,.08);
}
.assistant-message.soft-failure .assistant-message-text{
  color:#6e5a32;
  font-size:13px;
}
.assistant-message-text{
  font-size:13px;
  line-height:1.7;
  white-space:normal;
}
.assistant-message-text p{
  margin:0 0 9px;
}
.assistant-message-text p:last-child{
  margin-bottom:0;
}
.assistant-message-text h4,
.assistant-message-text h5{
  margin:8px 0 7px;
  font-size:13px;
  line-height:1.45;
  color:#0b5f59;
}
.assistant-message-text ul,
.assistant-message-text ol{
  margin:6px 0 10px;
  padding-left:20px;
}
.assistant-message-text li{
  margin:3px 0;
}
.assistant-message-text strong{
  font-weight:900;
  color:#073f3c;
}
.assistant-message-text code{
  padding:1px 5px;
  border-radius:6px;
  background:#eef8f5;
  color:#0b6f66;
  font-family:ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  font-size:.92em;
}
.assistant-message-text hr{
  border:none;
  border-top:1px solid #dceae6;
  margin:10px 0;
}
.assistant-message-text blockquote{
  margin:8px 0;
  padding:6px 10px;
  border-left:3px solid #60c8bd;
  border-radius:8px;
  background:#f1fbf8;
  color:#315f5a;
}
.assistant-md-table-wrap{
  max-width:100%;
  overflow-x:auto;
  margin:8px 0 10px;
  border:1px solid #dceae6;
  border-radius:10px;
  background:#fff;
}
.assistant-md-table-wrap table{
  width:100%;
  border-collapse:collapse;
  font-size:12px;
  min-width:420px;
}
.assistant-md-table-wrap th,
.assistant-md-table-wrap td{
  padding:7px 9px;
  border-bottom:1px solid #e7f0ed;
  text-align:left;
  vertical-align:top;
}
.assistant-md-table-wrap th{
  background:#f3fbf8;
  color:#0b5f59;
  font-weight:900;
}
.assistant-md-table-wrap tr:last-child td{
  border-bottom:none;
}
.assistant-message.user .assistant-message-text strong,
.assistant-message.user .assistant-message-text h4,
.assistant-message.user .assistant-message-text h5{
  color:#fff;
}
.assistant-message.user .assistant-message-text code{
  background:rgba(255,255,255,.18);
  color:#fff;
}
.assistant-side-panel .assistant-md-table-wrap{
  overflow:visible;
  border:0;
  background:transparent;
}
.assistant-side-panel .assistant-md-table-wrap table,
.assistant-side-panel .assistant-md-table-wrap tbody{
  display:grid;
  gap:8px;
  width:100%;
  min-width:0;
}
.assistant-side-panel .assistant-md-table-wrap thead,
.assistant-side-panel .assistant-md-table-wrap th{
  display:none;
}
.assistant-side-panel .assistant-md-table-wrap tr{
  display:grid;
  gap:6px;
  padding:10px;
  border:1px solid rgba(14,128,122,.13);
  border-radius:14px;
  background:rgba(247,253,251,.92);
}
.assistant-side-panel .assistant-md-table-wrap td{
  display:grid;
  grid-template-columns:minmax(58px,auto) minmax(0,1fr);
  gap:8px;
  align-items:start;
  padding:0;
  border:0;
  background:transparent;
  white-space:normal;
  overflow-wrap:anywhere;
}
.assistant-side-panel .assistant-md-table-wrap td::before{
  content:attr(data-label);
  color:#08746b;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.assistant-side-panel .assistant-md-table-wrap td[data-label=""]{
  display:block;
}
.assistant-side-panel .assistant-md-table-wrap td[data-label=""]::before{
  display:none;
}
.assistant-thinking{
  min-width:min(360px, 72vw);
}
.assistant-thinking-head{
  display:flex;
  align-items:center;
  gap:8px;
  color:#0b5f59;
  font-size:13px;
}
.assistant-thinking-orb{
  width:12px;
  height:12px;
  border-radius:999px;
  background:radial-gradient(circle at 32% 30%, #f7fffb 0 20%, #55d0c8 38%, #0a8f86 78%);
  box-shadow:0 0 0 0 rgba(38,187,177,.28);
  animation:assistantThinkingOrb 1.45s ease-in-out infinite;
}
.assistant-thinking-note{
  margin-top:6px;
  color:#55726f;
  font-size:12px;
  line-height:1.5;
}
.assistant-thinking-track{
  position:relative;
  height:6px;
  margin-top:10px;
  border-radius:999px;
  overflow:hidden;
  background:linear-gradient(90deg, #e7f5f1, #f7f2e6);
}
.assistant-thinking-track i{
  position:absolute;
  inset:0 auto 0 -42%;
  width:46%;
  border-radius:999px;
  background:linear-gradient(90deg, transparent, rgba(17,163,152,.32), rgba(248,190,93,.42), transparent);
  animation:assistantThinkingSweep 1.6s cubic-bezier(.42,0,.2,1) infinite;
}
.assistant-thinking-steps{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}
.assistant-thinking-steps span{
  padding:3px 7px;
  border-radius:999px;
  background:#f1faf7;
  color:#5d827d;
  font-size:11px;
  font-weight:800;
  animation:assistantThinkingStep 1.8s ease-in-out infinite;
}
.assistant-thinking-steps span:nth-child(2){
  animation-delay:.22s;
}
.assistant-thinking-steps span:nth-child(3){
  animation-delay:.44s;
}
@keyframes assistantThinkingOrb{
  0%, 100%{
    transform:scale(.92);
    box-shadow:0 0 0 0 rgba(38,187,177,.22);
  }
  50%{
    transform:scale(1.08);
    box-shadow:0 0 0 7px rgba(38,187,177,0);
  }
}
@keyframes assistantThinkingSweep{
  0%{
    transform:translateX(0);
  }
  100%{
    transform:translateX(310%);
  }
}
@keyframes assistantThinkingStep{
  0%, 78%, 100%{
    opacity:.52;
    transform:translateY(0);
  }
  34%{
    opacity:1;
    transform:translateY(-1px);
  }
}
.assistant-apply{
  margin-top:10px;
  border:none;
  background:#e3faf5;
  color:#118a79;
  font-size:12px;
  font-weight:900;
  padding:8px 12px;
  border-radius:999px;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.assistant-apply:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(31,184,205,.14);
}
.assistant-choice-list{
  display:grid;
  gap:10px;
  margin-top:12px;
}
.assistant-choice-card{
  border:1px solid #dbe8e5;
  border-radius:16px;
  background:#fcfefd;
  padding:12px 12px 10px;
  box-shadow:0 8px 20px rgba(12,82,81,.06);
}
.assistant-choice-card strong{
  display:block;
  color:var(--forest);
  font-size:13px;
  margin-bottom:4px;
}
.assistant-choice-card p{
  margin:0;
  color:#677b79;
  font-size:12px;
  line-height:1.6;
}
.assistant-choice-field-list{
  display:grid;
  gap:8px;
  margin:10px 0 8px;
}
.assistant-choice-field-card{
  border:1px solid #e3eeeb;
  border-radius:8px;
  background:#f8fcfb;
  padding:9px;
}
.assistant-choice-field-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:6px;
}
.assistant-choice-field-head strong{
  margin:0;
  color:#244b48;
  font-size:12px;
}
.assistant-choice-field-head span{
  flex:0 0 auto;
  color:#6d807d;
  font-size:11px;
  font-weight:800;
}
.assistant-choice-field-row{
  display:grid;
  gap:2px;
  margin-top:6px;
}
.assistant-choice-field-row b{
  color:#4d6662;
  font-size:11px;
}
.assistant-choice-field-row p{
  color:#415754;
  font-size:12px;
  line-height:1.55;
}
.assistant-execution-card{
  margin-top:12px;
  border:1px solid rgba(35,199,195,.28);
  border-radius:18px;
  background:linear-gradient(180deg,#f8fffd,#eefbf7);
  padding:12px;
  box-shadow:0 14px 34px rgba(10,97,92,.10);
}
.assistant-execution-card.running{
  border-color:rgba(35,199,195,.62);
  box-shadow:0 16px 40px rgba(35,199,195,.18);
}
.assistant-execution-card.done{
  border-color:rgba(22,163,74,.28);
  background:linear-gradient(180deg,#f7fff9,#effbf2);
}
.assistant-execution-card.error{
  border-color:rgba(239,68,68,.28);
  background:linear-gradient(180deg,#fffafa,#fff1f1);
}
.assistant-execution-card.cancelled{
  opacity:.78;
  background:#f7faf9;
}
.assistant-execution-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.assistant-execution-head strong{
  color:var(--forest);
  font-size:14px;
}
.assistant-execution-status{
  flex:0 0 auto;
  border-radius:999px;
  background:#dff7f1;
  color:#0b857a;
  font-size:11px;
  font-weight:900;
  padding:4px 8px;
}
.assistant-execution-card p{
  margin:0 0 10px;
  color:#5f7472;
  font-size:12px;
  line-height:1.6;
}
.assistant-execution-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:10px;
}
.assistant-execution-meta span{
  border:1px solid #d7ebe7;
  background:rgba(255,255,255,.82);
  border-radius:999px;
  color:#5e7774;
  font-size:11px;
  font-weight:800;
  padding:5px 8px;
}
.assistant-execution-steps{
  display:grid;
  gap:7px;
}
.assistant-execution-step{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:8px;
  align-items:start;
  border-radius:12px;
  padding:7px;
  background:rgba(255,255,255,.64);
}
.assistant-execution-step > span{
  width:22px;
  height:22px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#dfeeea;
  color:#66817d;
  font-size:11px;
  font-weight:900;
}
.assistant-execution-step.active{
  background:#e4fbf6;
}
.assistant-execution-step.active > span{
  background:var(--cyan);
  color:#fff;
  animation:assistantExecPulse 1s infinite ease-in-out;
}
.assistant-execution-step.done > span{
  background:#bff4df;
  color:#05705f;
}
.assistant-execution-step strong{
  display:block;
  color:#174642;
  font-size:12px;
}
.assistant-execution-step em{
  display:block;
  color:#6f8582;
  font-style:normal;
  font-size:11px;
  line-height:1.5;
  margin-top:1px;
}
.assistant-execution-actions{
  display:flex;
  gap:8px;
  margin-top:12px;
}
.assistant-exec-primary,
.assistant-exec-secondary{
  border:none;
  border-radius:999px;
  min-height:34px;
  padding:0 13px;
  font-size:12px;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.assistant-exec-primary{
  background:linear-gradient(135deg,var(--cyan),var(--cyan-2));
  color:#fff;
  box-shadow:0 10px 22px rgba(35,199,195,.22);
}
.assistant-exec-primary.readonly{
  background:#0f8d7c;
}
.assistant-exec-secondary{
  background:#fff;
  color:#607774;
  border:1px solid #d9e8e5;
}
.assistant-exec-primary:hover,
.assistant-exec-secondary:hover{
  transform:translateY(-1px);
}
.assistant-execution-result,
.assistant-execution-error{
  margin-top:10px;
  border-radius:12px;
  padding:8px 10px;
  font-size:12px;
  line-height:1.6;
}
.assistant-execution-result{
  background:#e4f8f6;
  color:#08746f;
}
.assistant-execution-error{
  background:#fff0f0;
  color:#b42318;
}
@keyframes assistantExecPulse{
  0%,100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.08); opacity:.82; }
}
.assistant-composer{
  display:grid;
  gap:6px;
}
.assistant-composer-chat{
  padding-top:2px;
}
.assistant-input-shell{
  display:grid;
  gap:6px;
}
.assistant-input{
  width:100%;
  min-height:42px;
  max-height:132px;
  padding:0;
  border:none;
  background:transparent;
  color:var(--ink);
  resize:none;
  font:inherit;
  line-height:1.55;
  overflow-y:hidden;
}
.assistant-input:focus{
  outline:none;
}
.assistant-input-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.assistant-input-tools-left,
.assistant-input-tools-right{
  display:flex;
  align-items:center;
  gap:8px;
}
.assistant-tool-btn,
.assistant-send-btn{
  width:34px;
  height:34px;
  border:none;
  border-radius:999px;
  background:#f3f7f6;
  color:#5f726f;
  font-size:18px;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.assistant-tool-btn:hover,
.assistant-send-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 20px rgba(12,82,81,.12);
}
.assistant-send-btn{
  background:linear-gradient(180deg, #23d4d7 0%, #18bfc7 100%);
  color:#ffffff;
  font-weight:900;
  box-shadow:0 12px 24px rgba(24,191,199,.26);
}
.assistant-send-btn svg{
  width:20px;
  height:20px;
  display:block;
}
.assistant-send-btn path{
  fill:none;
  stroke:currentColor;
  stroke-width:2.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.assistant-tool-btn{
  font-size:24px;
  line-height:1;
}
.assistant-send-btn:hover{
  background:linear-gradient(180deg, #2adedf 0%, #14b2bc 100%);
  box-shadow:0 14px 28px rgba(24,191,199,.34);
}
.assistant-mode-select{
  border:none;
  background:transparent;
  color:#5f726f;
  font-size:12px;
  font-weight:700;
  outline:none;
}
@media (max-width: 1600px){
  .shell-workspace{
    grid-template-columns:minmax(0,1fr) 420px;
  }
}
@media (max-width: 1560px){
  .shell{
    grid-template-columns:248px minmax(0,1fr);
  }
  .shell-sidebar{
    padding:18px 14px;
    gap:18px;
  }
  .sidebar-brand-copy strong{
    font-size:20px;
  }
  .sidebar-link{
    grid-template-columns:36px minmax(0,1fr);
    gap:10px;
    padding:12px 14px;
    border-radius:16px;
  }
  .sidebar-link strong{
    font-size:15px;
  }
  .sidebar-link-icon{
    width:36px;
    height:36px;
    border-radius:11px;
  }
  .sidebar-link-icon svg{
    width:18px;
    height:18px;
  }
  .sidebar-children{
    padding-left:46px;
  }
  .shell-topbar{
    padding:8px 18px 0;
  }
  .page{
    padding:0 18px 28px;
  }
  .page-title h1{
    font-size:30px;
  }
  .btn{
    min-height:42px;
    padding:0 14px;
  }
  .user-nav .btn{
    min-height:34px;
    padding:0 10px;
  }
  .card{
    padding:16px;
  }
  .identity-strip{
    grid-template-columns:repeat(2,1fr);
  }
  .split{
    grid-template-columns:1fr 320px;
    gap:14px;
  }
  .shell-workspace{
    grid-template-columns:minmax(0,1fr) 388px;
    gap:18px;
    padding:0 14px 24px 0;
  }
  .assistant-side-panel{
    top:60px;
    height:calc(100vh - 74px);
    padding:10px 12px 12px;
  }
  .assistant-panel-tools .btn{
    padding:0 8px;
  }
  .field textarea{
    min-height:88px;
  }
}
@media (max-width: 1460px){
  .shell{
    grid-template-columns:232px minmax(0,1fr);
  }
  .shell-sidebar{
    padding:16px 12px;
  }
  .sidebar-brand{
    gap:10px;
  }
  .brand-mark{
    width:52px;
    height:52px;
  }
  .sidebar-brand-copy strong{
    font-size:18px;
  }
  .sidebar-link small{
    font-size:11px;
  }
  .shell-topbar{
    padding:6px 14px 0;
  }
  .page{
    padding:0 14px 24px;
  }
  .page-title h1{
    font-size:28px;
  }
  .page-title p{
    font-size:12px;
  }
  .head-actions{
    gap:8px;
  }
  .btn{
    min-height:40px;
    padding:0 12px;
    border-radius:12px;
    font-size:13px;
  }
  .shell-workspace{
    grid-template-columns:minmax(0,1fr) 360px;
    gap:16px;
    padding:0 12px 22px 0;
  }
  .split{
    grid-template-columns:1fr 300px;
  }
  .assistant-panel-card{
    padding:12px;
  }
}
@media (max-width: 1380px){
  .shell-workspace{
    grid-template-columns:1fr;
    padding-right:20px;
  }
  .assistant-side-panel{
    position:relative;
    top:auto;
    height:auto;
    border-left:none;
    border-top:1px solid rgba(191,238,232,.82);
    box-shadow:0 -18px 34px rgba(15,108,107,.06);
  }
  .assistant-side-peek{
    position:relative;
    top:auto;
    min-height:52px;
    width:auto;
    writing-mode:horizontal-tb;
    border-radius:14px;
    justify-self:start;
  }
}
.quick-grid{
  display:grid;
  gap:10px;
}
.quick-action{
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fafdfb;
}
.quick-action strong{display:block;margin-bottom:4px}
.assistant-fill-flash{
  animation:assistantFillFlash 1.2s ease;
}
.assistant-action-scope-active{
  animation:assistantActionScope 1.8s ease;
}
@keyframes assistantFillFlash{
  0%{
    box-shadow:0 0 0 0 rgba(35,198,197,.0);
    transform:translateY(0);
  }
  30%{
    box-shadow:0 0 0 4px rgba(35,198,197,.18), 0 12px 24px rgba(35,198,197,.12);
    transform:translateY(-1px);
  }
  100%{
    box-shadow:0 0 0 0 rgba(35,198,197,.0);
    transform:translateY(0);
  }
}
@keyframes assistantActionScope{
  0%{
    box-shadow:0 0 0 0 rgba(35,199,195,0);
  }
  18%{
    box-shadow:0 0 0 4px rgba(35,199,195,.20), 0 20px 44px rgba(35,199,195,.16);
    transform:translateY(-1px);
  }
  100%{
    box-shadow:0 0 0 0 rgba(35,199,195,0);
    transform:translateY(0);
  }
}
.empty{
  padding:18px;
  border:1px dashed #cfdacf;
  border-radius:16px;
  background:#fbfdfb;
  color:var(--muted);
}
.section{
  display:grid;
  gap:12px;
}
.tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-weight:900;
  font-size:13px;
  cursor:pointer;
}
.tab.active{
  background:var(--green-soft);
  color:var(--green);
  border-color:#b9dcc7;
}
.hide{display:none !important}
@media (max-width:1500px){
  .shell-workspace{
    grid-template-columns:minmax(0,1fr) minmax(340px,380px);
    gap:16px;
    padding-right:14px;
  }
  .shell-workspace.assistant-collapsed{
    grid-template-columns:minmax(0,1fr) 54px;
    gap:10px;
  }
}
@media (max-width:1180px){
  .shell{
    grid-template-columns:224px minmax(0,1fr);
  }
  .shell-workspace{
    grid-template-columns:1fr;
    padding-right:0;
  }
  .shell-workspace.assistant-collapsed{
    grid-template-columns:1fr;
  }
  .assistant-side-panel{
    position:static;
    height:min(680px, calc(100vh - 96px));
    border-left:1px solid rgba(191,238,232,.82);
    border-radius:22px;
  }
  .grid-2,.grid-3,.split{grid-template-columns:1fr}
  .identity-strip{grid-template-columns:repeat(2,1fr)}
  .topbar-copy strong{
    font-size:24px;
  }
}
@media (max-width:860px){
  .shell{
    grid-template-columns:1fr;
  }
  .shell-sidebar{
    display:none;
  }
  .shell-topbar{
    padding:10px 14px 0;
  }
  .design-context-nav-host{
    top:64px;
    padding:4px 14px 0;
  }
    .shell-topbar-inner{
      flex-direction:column;
      align-items:flex-start;
    }
    .shell-topbar-left{
      width:100%;
      justify-content:space-between;
    }
    .user-nav{
      width:100%;
      justify-content:space-between;
    }
  .page{
    padding:0 14px 24px;
  }
}
@media (max-width:640px){
  .sidebar-nav{
    grid-template-columns:1fr;
  }
  .page-title h1,
  .topbar-copy strong{
    font-size:24px;
  }
  .actions-grid,.identity-strip{grid-template-columns:1fr}
}

/* 全局视觉统一 · 跟随备课工作台的轻量纸面风格 */
:root{
  --bg:#f5f2ea;
  --panel:#fffefa;
  --soft:#eef8f6;
  --line:#d9e9e6;
  --text:#173332;
  --muted:#607876;
  --green:#087b73;
  --green-soft:#e4f8f5;
  --forest:#087b73;
  --forest-deep:#173332;
  --shadow:0 18px 42px rgba(75,62,39,.075);
  --radius:16px;
}
body{
  background:
    repeating-linear-gradient(0deg,rgba(124,102,73,.028) 0 1px,transparent 1px 10px),
    repeating-linear-gradient(90deg,rgba(124,102,73,.018) 0 1px,transparent 1px 12px),
    linear-gradient(135deg,#f7f3ea 0%,#eef7f5 48%,#fff9ef 100%);
}
.shell{
  background:
    linear-gradient(90deg,rgba(24,167,170,.035),transparent 34%),
    linear-gradient(180deg,rgba(255,253,248,.42),rgba(255,253,248,.12));
}
.shell-sidebar{
  border-right:1px solid rgba(155,129,88,.18);
  background:
    linear-gradient(180deg,rgba(255,253,248,.94),rgba(240,250,248,.82)),
    #fffefa;
  box-shadow:8px 0 28px rgba(75,62,39,.045);
}
.sidebar-brand-copy strong,
.topbar-copy strong{
  color:#173332;
}
.sidebar-brand-copy small,
.page-title small,
.topbar-copy small{
  color:#087b73;
}
.sidebar-link{
  border-radius:12px;
}
.sidebar-link:hover{
  background:#f2fbfa;
  border-color:#d4ece8;
}
.sidebar-link.active{
  background:linear-gradient(90deg,#e8f6f4,#fffaf0);
  border-color:#cfe8e4;
  color:#087b73;
}
.sidebar-child-link.active{
  background:#e8f6f4;
}
.page-head{
  min-height:50px;
  padding:6px 8px 6px 16px;
  align-items:center;
  border:1px solid rgba(155,129,88,.18);
  border-radius:18px;
  background:rgba(255,253,248,.84);
  box-shadow:0 18px 42px rgba(75,62,39,.07);
  backdrop-filter:blur(14px);
}
.page-title h1{
  color:#173332;
  letter-spacing:0;
}
.page-title p{
  color:#607876;
}
.btn{
  min-height:38px;
  border-radius:10px;
  border-color:#d9e9e6;
  background:#fffefa;
  color:#24514e;
  box-shadow:0 10px 22px rgba(75,62,39,.055);
}
.btn:hover{
  transform:none;
  border-color:#c7e7e1;
  background:#f2fbfa;
  color:#087b73;
}
.btn.primary{
  background:linear-gradient(135deg,#11a99d 0%,#18a7aa 58%,#b88a3a 100%);
  box-shadow:0 14px 26px rgba(19,143,135,.22);
}
.card,
.editor-card,
.panel-card,
.status-card,
.identity-item,
.list-item,
.action-card,
.nav-card{
  border-color:rgba(155,129,88,.18);
  border-radius:16px;
  background:#fffefa;
  box-shadow:0 16px 34px rgba(75,62,39,.07);
}
.card h2,
.card h3,
.editor-card h2,
.editor-card h3{
  color:#173332;
}
.field label{
  color:#087b73;
}
.field input,
.field select,
.field textarea{
  border-color:#d9e9e6;
  border-radius:10px;
  background:#fffefa;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 2px 8px rgba(31,75,58,.035);
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:#18a7aa;
  box-shadow:0 0 0 3px rgba(24,167,170,.13);
}
.pill,
.badge,
.status,
.tab{
  border-color:#d9e9e6;
  background:#fffefa;
}

/* Laptop fit pass v1 · 2026-05-04
   Keep these overrides last: older 1500px rules re-opened the AI column
   after the 1380px single-column rule. */
:root {
  --laptop-page-pad: 16px;
  --laptop-sidebar-width: 208px;
  --laptop-assistant-width: 340px;
  --laptop-title-size: 24px;
  --laptop-card-pad: 14px;
}

@media (max-width: 1440px) {
  .shell {
    grid-template-columns: var(--laptop-sidebar-width) minmax(0, 1fr);
  }

  .shell-sidebar {
    gap: 14px;
    padding: 14px 10px;
  }

  .sidebar-brand {
    gap: 8px;
    padding: 4px 6px;
  }

  .brand-mark {
    width: 46px;
    height: 46px;
  }

  .sidebar-brand-copy strong {
    font-size: 16px;
  }

  .sidebar-brand-copy span {
    font-size: 12px;
  }

  .sidebar-link {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 8px;
    padding: 10px;
  }

  .sidebar-link-icon {
    width: 32px;
    height: 32px;
  }

  .sidebar-children {
    padding-left: 40px;
  }

  .shell-topbar {
    padding: 6px 12px 0;
  }

  .page {
    padding: 0 var(--laptop-page-pad) 22px;
  }

  .page-head {
    min-height: 46px;
    padding: 6px 8px 6px 12px;
  }

  .page-title h1,
  .topbar-copy strong,
  .section-title h2,
  .main-title h1 {
    font-size: var(--laptop-title-size);
    letter-spacing: 0;
  }

  .card,
  .editor-card,
  .panel-card,
  .status-card,
  .identity-item,
  .list-item,
  .action-card,
  .nav-card,
  .content-card,
  .paper-card {
    padding: var(--laptop-card-pad);
  }

  .identity-strip,
  .stats-grid,
  .status-grid {
    gap: 10px;
  }

  .split {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 14px;
  }

  .shell-workspace,
  .shell-workspace.assistant-collapsed {
    grid-template-columns: minmax(0, 1fr) minmax(320px, var(--laptop-assistant-width));
    gap: 14px;
    padding: 0 12px 22px 0;
  }

  .assistant-side-panel {
    min-width: 0;
  }
}

@media (max-width: 1366px) {
  .shell-workspace,
  .shell-workspace.assistant-collapsed {
    grid-template-columns: minmax(0, 1fr) !important;
    padding-right: 14px;
  }

  .assistant-side-panel {
    position: fixed;
    top: 72px;
    right: 18px;
    z-index: 80;
    display: none;
    width: min(420px, calc(100vw - 260px));
    max-width: calc(100vw - 36px);
    height: calc(100vh - 96px);
    max-height: calc(100vh - 96px);
    border-left: 1px solid rgba(191, 238, 232, 0.82);
    border-radius: 22px;
    box-shadow: 0 24px 60px rgba(20, 64, 61, 0.18);
  }

  .assistant-side-panel.open {
    display: flex;
  }

  .assistant-side-peek {
    position: fixed;
    top: 92px;
    right: 16px;
    z-index: 79;
  }

  .shell-content-with-assistant {
    min-width: 0;
  }

  .identity-strip,
  .grid-3,
  .stats-grid,
  .status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .metric-number,
  .stat-number,
  .score-number {
    font-size: 24px;
  }
}

@media (max-width: 1180px) {
  .shell {
    grid-template-columns: 76px minmax(0, 1fr);
  }

  .shell-sidebar {
    align-items: center;
    padding: 12px 8px;
  }

  .sidebar-brand {
    justify-content: center;
    padding: 4px 0;
  }

  .sidebar-brand-copy,
  .sidebar-link-copy,
  .sidebar-children,
  .sidebar-account-copy {
    display: none;
  }

  .sidebar-link {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 9px;
  }

  .sidebar-link-icon {
    width: 36px;
    height: 36px;
  }

  .sidebar-account-toggle {
    justify-content: center;
    min-height: 44px;
    padding: 6px;
  }

  .sidebar-account-menu {
    bottom: 0;
    left: 64px;
    width: 210px;
  }

  .page {
    padding: 0 12px 20px;
  }

  .grid-2,
  .grid-3,
  .split,
  .identity-strip,
  .stats-grid,
  .status-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .assistant-side-panel {
    right: 12px;
    width: min(420px, calc(100vw - 104px));
  }
}

@media (max-width: 1440px) {
  .page-title h1,
  .wb-hero h1,
  .entry-brand-copy h1,
  .quick-archive-page .page-title h1 {
    font-size: 24px;
    line-height: 1.12;
  }

  .page-title p,
  .section-note,
  .guide-text {
    font-size: 13px;
  }
}

@media (max-width: 1180px) {
  .page-title h1,
  .wb-hero h1,
  .entry-brand-copy h1,
  .quick-archive-page .page-title h1 {
    font-size: 22px;
  }
}

/* Global type guard: prevent oversized legacy headings from leaking on wide laptops. */
.page-title h1,
.topbar-copy strong,
.section-title h2,
.main-title h1 {
  font-size: clamp(21px, 1.45vw, 28px);
  letter-spacing: 0;
}

.metric-number,
.stat-number,
.score-number {
  font-size: clamp(20px, 1.25vw, 24px);
}
