/* layout.css — 登录/注册视图 + 双面板工作台（左 广场/我的 384 + 右 研究流/输入条/报告浮窗） */

#app { height: 100vh; overflow: hidden; }
.view { display: none; height: 100vh; }
.view.is-active { display: block; }

/* ============ 登录 / 注册视图 ============ */
.view-login.is-active { display: grid; }
.login-shell { height: 100vh; display: grid; grid-template-columns: 1.05fr .95fr; }
.login-visual {
  position: relative; overflow: hidden; padding: var(--sp-10);
  display: flex; flex-direction: column; justify-content: space-between;
  background:
    radial-gradient(120% 90% at 18% 12%, rgba(11,168,74,.16), transparent 60%),
    radial-gradient(110% 80% at 88% 88%, rgba(11,168,74,.10), transparent 55%),
    linear-gradient(150deg, #F4F7F5, #E7F2EC);
}
.login-visual::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(11,168,74,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(11,168,74,.05) 1px, transparent 1px);
  background-size: 36px 36px;
  mask-image: radial-gradient(120% 100% at 30% 30%, #000 30%, transparent 78%);
}
.login-visual .visual-tag, .login-visual .visual-sub { position: relative; z-index: 1; }
/* 交付说明 PAGE 01：左标题 28/800、行高 1.95；说明行高 2.2 */
.login-visual .visual-tag { max-width: 460px; font-size: 28px; font-weight: var(--fw-extrabold); line-height: 1.95; letter-spacing: -.01em; color: var(--ink); }
.login-visual .visual-tag span { color: var(--green-d); }
.login-visual .visual-sub { margin-top: var(--sp-7); color: var(--ink-2); max-width: 400px; line-height: 2.2; }
.login-form-wrap { display: flex; align-items: center; justify-content: center; padding: var(--sp-10); background: var(--bg); }
.login-card { width: 100%; max-width: 360px; }

/* ============ 工作台：双面板 ============ */
.view-dashboard.is-active { display: block; height: 100vh; overflow: hidden; }
.ws { display: grid; grid-template-columns: 384px 1fr; height: 100vh; }

/* 左栏 */
.sidebar {
  min-width: 0; height: 100vh; background: var(--soft-2);
  border-right: 1px solid var(--line); display: flex; flex-direction: column;
}
.sidebar-brand { padding: var(--sp-7) var(--sp-7) var(--sp-5); flex: none; }
.panel-seg { margin: 0 var(--sp-7) var(--sp-5); flex: none; }
.panel { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.panel.u-hidden { display: none; }
.panel-body { flex: 1; overflow-y: auto; padding: var(--sp-5) var(--sp-7) var(--sp-7); }

/* 右栏 */
.workspace { position: relative; min-width: 0; height: 100vh; overflow: hidden; display: flex; flex-direction: column; background: var(--bg); }
.feed-wrap { flex: 1; overflow-y: auto; }
.feed { max-width: var(--content-max); margin: 0 auto; padding: var(--sp-9) var(--sp-7) 210px; min-height: 100%; }

/* 底部悬浮输入条 */
.composer {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 15;
  padding: var(--sp-7) var(--sp-7) var(--sp-6);
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, var(--bg) 42%);
  pointer-events: none;
}
.composer-inner { max-width: 720px; margin: 0 auto; position: relative; pointer-events: auto; }
.composer-foot { text-align: center; margin-top: var(--sp-4); font-size: var(--fs-xs); color: var(--ink-3); }

/* 遮罩 + 报告浮窗：仅覆盖右栏（workspace 相对定位） */
.scrim {
  position: absolute; inset: 0; z-index: 25; background: rgba(20,23,27,.28);
  opacity: 0; visibility: hidden; transition: opacity var(--t-base) var(--ease), visibility var(--t-base);
}
.scrim.is-open { opacity: 1; visibility: visible; }
.drawer {
  position: absolute; inset: 0; z-index: 30;
  background: var(--bg); box-shadow: -8px 0 40px rgba(20,23,27,.06);
  display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform var(--t-base) var(--ease);
}
.drawer.is-open { transform: translateX(0); }
.drawer-head { position: relative; padding: var(--sp-7) var(--sp-9) var(--sp-5); border-bottom: 1px solid var(--line); flex: none; }
.drawer-meta { max-width: var(--content-max); margin-inline: auto; min-width: 0; padding-right: 40px; }
.drawer-body { flex: 1; overflow-y: auto; padding: var(--sp-7) var(--sp-9) var(--sp-10); }
.drawer-body > .report-body, .drawer-body > .report-foot { max-width: var(--content-max); margin-inline: auto; }

/* 响应式 */
@media (max-width: 900px) { .ws { grid-template-columns: 320px 1fr; } }
@media (max-width: 720px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-visual { display: none; }
  .ws { grid-template-columns: 1fr; }
  .sidebar { display: none; }
  .feed { padding-left: var(--sp-5); padding-right: var(--sp-5); }
  .composer { padding-left: var(--sp-5); padding-right: var(--sp-5); }
}
