/* ============================================================
   AI 获客控制台 · 专业可信 SaaS 风格 v2
   规范：浅灰白底 #F4F5F9 + 白卡片 + 科技蓝 #0A84FF 主色
        + 蓝→紫渐变按钮 + 胶囊徽章 + 状态点脉冲 + 0.3s 过渡
   内页强化：页头图标胶囊 / KPI 大数字滚动 / 面板渐变标题条
            / 区块进入动画 / 表格精修 / 柔和顶部光晕
   ============================================================ */
* { box-sizing: border-box; }
body {
  margin:0;
  font-family:"Noto Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
  background:#F4F5F9;
  color:#18181B;
  -webkit-font-smoothing:antialiased;
}
::-webkit-scrollbar { width:8px; height:8px; }
::-webkit-scrollbar-thumb { background:#D9DDE8; border-radius:9999px; }
::-webkit-scrollbar-thumb:hover { background:#C3C9D9; }
::-webkit-scrollbar-track { background:transparent; }
.app { display:flex; min-height:100vh; }

/* ---------- 侧边导航（白底吸边，品牌渐变标识） ---------- */
.sidebar {
  width:236px; background:#FFFFFF; color:#18181B;
  padding:20px 14px; display:flex; flex-direction:column;
  border-right:1px solid #E8EAF1;
  box-shadow:1px 0 8px rgba(24,24,27,.03);
  position:sticky; top:0; height:100vh; overflow-y:auto;
}
.brand { display:flex; align-items:center; gap:10px; margin-bottom:26px; padding:0 4px; }
.brand .logo {
  font-size:15px; font-weight:800; color:#fff;
  width:40px; height:40px; border-radius:12px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#0A84FF,#5856D6);
  box-shadow:0 4px 12px rgba(10,132,255,.35);
}
.brand b { color:#18181B; font-size:15px; display:block; line-height:1.3; }
.brand span { font-size:11px; color:#71717A; }
.nav-item {
  padding:10px 12px; border-radius:10px; margin-bottom:4px;
  cursor:pointer; font-size:14px; color:#52525B; font-weight:500;
  display:flex; align-items:center; gap:9px;
  transition:all .25s ease;
  border:1px solid transparent;
}
.nav-item:hover { background:#F0F6FF; color:#0A84FF; }
.nav-item.active {
  background:linear-gradient(to right,#0A84FF,#5856D6);
  color:#fff; font-weight:600;
  box-shadow:0 4px 12px rgba(10,132,255,.28);
}
.nav-item .ic { width:18px; text-align:center; }
.foot {
  margin-top:auto; font-size:11px; color:#A1A1AA; line-height:1.7;
  border-top:1px solid #F0F0F3; padding-top:12px; padding-left:4px;
}
.logout { color:#FF3B30; cursor:pointer; transition:.2s; }
.logout:hover { opacity:.75; }

/* ---------- 主区（顶部柔和蓝紫光晕） ---------- */
.main {
  flex:1; padding:0 28px 34px; min-width:0;
  background:
    radial-gradient(900px 260px at 72% -90px, rgba(10,132,255,.07), transparent 70%),
    radial-gradient(700px 220px at 20% -70px, rgba(88,86,214,.05), transparent 70%),
    #F4F5F9;
}

/* 区块进入动画（视图切换时从下淡入） */
@keyframes fadeUp { from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:none;} }
.view-enter .topbar     { animation:fadeUp .38s ease both; }
.view-enter .grid       { animation:fadeUp .48s ease .06s both; }
.view-enter .panel,
.view-enter .table-wrap,
.view-enter .toolbar,
.view-enter .pb-grid    { animation:fadeUp .55s ease .12s both; }

/* ---------- 页头 ---------- */
.topbar { display:flex; justify-content:space-between; align-items:center; padding:24px 0 16px; gap:14px; flex-wrap:wrap; }
.topbar h1 {
  font-size:24px; margin:0; font-weight:800; letter-spacing:-.01em;
  display:flex; align-items:center; gap:12px;
}
.ph-ic {
  width:40px; height:40px; border-radius:12px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:19px;
  background:linear-gradient(135deg,#0A84FF,#5856D6);
  box-shadow:0 4px 12px rgba(10,132,255,.30);
}
.sub { font-size:13px; color:#71717A; margin-top:4px; }

/* 在线状态：胶囊徽章 + 绿点脉冲 */
.live {
  font-size:13px; color:#059669; background:#F0FFF4;
  border:1px solid #BBF7D0;
  padding:6px 14px; border-radius:9999px;
  display:flex; align-items:center; gap:7px; font-weight:500;
  box-shadow:0 1px 4px rgba(24,24,27,.04);
}
.live .dot {
  width:8px; height:8px; border-radius:50%; background:#34C759;
  display:inline-block; animation:pulse 1.5s infinite;
}
.live .dot.off { background:#F59E0B; animation:none; }
@keyframes pulse {
  0%   { box-shadow:0 0 0 0 rgba(52,199,89,.45); }
  70%  { box-shadow:0 0 0 7px rgba(52,199,89,0); }
  100% { box-shadow:0 0 0 0 rgba(52,199,89,0); }
}

/* ---------- KPI 卡片（图标章 + 渐变大数字 + 顶部渐变线） ---------- */
.grid { display:grid; grid-template-columns:repeat(6,1fr); gap:16px; margin-bottom:18px; }
.card {
  background:#FFFFFF; border-radius:14px; padding:18px 16px;
  box-shadow:0 1px 4px rgba(24,24,27,.05);
  transition:all .3s ease; position:relative; overflow:hidden;
}
.card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(10,132,255,.12); }
.kpi-card { padding:20px 18px 18px; }
.kpi-card::before {
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(to right,#0A84FF,#5856D6);
  transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
}
.kpi-card:hover::before { transform:scaleX(1); }
.kpi-ic {
  width:36px; height:36px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-size:17px; background:#F0F6FF; margin-bottom:12px;
  border:1px solid #E3EEFF;
}
.kpi {
  font-size:30px; font-weight:800; letter-spacing:-.01em; line-height:1.1;
  color:#18181B;
  background:linear-gradient(135deg,#0A84FF,#5856D6);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  font-variant-numeric:tabular-nums;
}
.kpi-label { font-size:12px; color:#71717A; margin-top:7px; font-weight:500; }
.panel {
  background:#FFFFFF; border-radius:14px; padding:22px;
  margin-bottom:16px;
  box-shadow:0 1px 4px rgba(24,24,27,.05);
  transition:all .3s ease;
}
.panel:hover { box-shadow:0 4px 16px rgba(24,24,27,.07); }
.panel h3 { margin:0 0 16px; font-size:15.5px; font-weight:700; display:flex; align-items:center; gap:9px; }
.panel h3::before {
  content:""; width:4px; height:16px; border-radius:9999px; flex-shrink:0;
  background:linear-gradient(to bottom,#0A84FF,#5856D6);
}

/* 漏斗条形图（填充加高光斜面） */
.bars { display:flex; flex-direction:column; gap:12px; }
.bar-row { display:flex; align-items:center; gap:10px; font-size:13px; }
.bar-label { width:96px; color:#52525B; flex-shrink:0; font-weight:500; }
.bar-track { flex:1; background:#EEF0F6; border-radius:9999px; height:16px; overflow:hidden; }
.bar-fill {
  height:100%; border-radius:9999px; transition:width .5s ease;
  background-image:linear-gradient(90deg, rgba(255,255,255,.30), rgba(255,255,255,0) 55%);
  box-shadow:inset 0 -1px 2px rgba(0,0,0,.06);
}
.bar-val { width:84px; text-align:right; color:#52525B; flex-shrink:0; font-weight:600; font-variant-numeric:tabular-nums; }
.spark { background:#F8FAFC; border-radius:10px; padding:8px; }
.legend { font-size:12px; color:#A1A1AA; margin-top:10px; }

/* ---------- 工具栏 / 按钮 ---------- */
.toolbar { display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.toolbar .ipt { min-width:260px; }
.btn {
  border:none; background:#EEF0F6; color:#18181B;
  padding:9px 16px; border-radius:10px; cursor:pointer;
  font-size:13px; font-weight:500; transition:all .2s ease;
  font-family:inherit;
}
.btn:hover { background:#E2E5EE; transform:translateY(-1px); }
.btn.primary {
  background:linear-gradient(to right,#0A84FF,#5856D6);
  color:#fff; font-weight:600;
  box-shadow:0 4px 12px rgba(10,132,255,.28);
}
.btn.primary:hover { filter:brightness(1.08); transform:translateY(-1px); box-shadow:0 6px 16px rgba(10,132,255,.38); }
.hint { font-size:12px; color:#A1A1AA; margin-left:auto; }
.mini {
  border:1px solid #E4E6EF; background:#fff; color:#3F3F46;
  padding:4px 11px; border-radius:9999px; cursor:pointer;
  font-size:12px; margin-right:4px; transition:all .2s; font-family:inherit;
}
.mini:hover { background:#F0F6FF; border-color:#0A84FF; color:#0A84FF; }
.mini.danger { color:#FF3B30; border-color:#FFD4D1; }
.mini.danger:hover { background:#FFF1F0; border-color:#FF3B30; color:#FF3B30; }

/* ---------- 表格（精修：更高信息密度 + 行悬浮蓝染） ---------- */
.table-wrap {
  background:#fff; border-radius:14px; overflow:hidden;
  box-shadow:0 1px 4px rgba(24,24,27,.05);
  border:1px solid #EEF0F6;
}
.tbl { width:100%; border-collapse:collapse; font-size:13px; }
.tbl th {
  background:#FAFBFD; text-align:left; padding:12px 14px;
  color:#71717A; font-weight:600; font-size:12px; letter-spacing:.03em;
  border-bottom:1px solid #EEF0F6; white-space:nowrap;
}
.tbl td { padding:12px 14px; border-bottom:1px solid #F4F5F9; vertical-align:top; }
.tbl tr:last-child td { border-bottom:none; }
.tbl tr:hover td { background:#F5F9FF; }
.tbl td b { color:#18181B; }
.pill {
  display:inline-block; min-width:22px; text-align:center;
  color:#fff; border-radius:9999px; padding:2px 9px;
  font-weight:700; font-size:12px;
  box-shadow:0 1px 4px rgba(24,24,27,.12);
}
.tpl { color:#52525B; max-width:340px; }
.trig { color:#0A84FF; max-width:160px; word-break:break-all; }
.code,.tbl code {
  font-family:ui-monospace,monospace; background:#F4F5F9;
  padding:1px 6px; border-radius:6px; font-size:12px;
  color:#3F3F46;
}
.ops { white-space:nowrap; }

/* ---------- 表单 ---------- */
.row { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.row label { width:90px; color:#52525B; font-size:13px; flex-shrink:0; }
.row select,.row input { flex:1; padding:9px 12px; border:1px solid #E4E6EF; border-radius:10px; font-size:13px; transition:border-color .2s, box-shadow .2s; font-family:inherit; }
.row select:focus,.row input:focus { outline:none; border-color:#0A84FF; box-shadow:0 0 0 3px rgba(10,132,255,.12); }
.hidden { display:none; }
.msg {
  background:#F0F6FF; border:1px solid #CFE6FF; border-radius:12px;
  padding:14px; font-size:14px; line-height:1.7; margin:8px 0;
}
.ctx { font-size:12px; color:#71717A; margin:8px 0; }
.ctx code { margin-right:6px; }
.warn {
  background:#FFF1F0; border:1px solid #FFD4D1; color:#D92C20;
  padding:10px 12px; border-radius:10px; font-size:13px; margin:8px 0;
}
.empty { color:#A1A1AA; padding:20px; text-align:center; }

/* ---------- 时间轴 ---------- */
.timeline { position:relative; padding-left:22px; }
.tl-item { position:relative; padding:0 0 18px 18px; }
.tl-dot {
  position:absolute; left:-13px; top:4px; width:12px; height:12px;
  border-radius:50%;
  background:linear-gradient(135deg,#0A84FF,#5856D6);
  box-shadow:0 0 0 3px #E3EFFF;
}
.tl-body {
  background:#fff; border-radius:12px; padding:12px 14px;
  box-shadow:0 1px 4px rgba(24,24,27,.05);
}
.tl-content { font-size:13px; color:#52525B; margin-top:5px; }
.tl-note { font-size:12px; color:#0A84FF; margin-top:5px; }

/* ---------- ROI ---------- */
.roi-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:12px; }
.roi-grid div {
  background:#F8F9FC; border-radius:12px; padding:14px;
  text-align:center; transition:all .3s; border:1px solid transparent;
}
.roi-grid div:hover { background:#F0F6FF; border-color:#D6E8FF; transform:translateY(-2px); }
.roi-grid b {
  display:block; font-size:22px; font-weight:800;
  background:linear-gradient(135deg,#0A84FF,#5856D6);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  font-variant-numeric:tabular-nums;
}
.roi-grid span { font-size:12px; color:#71717A; }

/* ---------- toast ---------- */
.toast {
  position:fixed; top:20px; right:20px;
  background:#18181B; color:#fff;
  padding:12px 18px; border-radius:12px; font-size:13px;
  z-index:999; box-shadow:0 8px 24px rgba(24,24,27,.25);
  animation:slideIn .2s;
}
.toast.ok { background:linear-gradient(to right,#059669,#34C759); }
.toast.err { background:linear-gradient(to right,#FF3B30,#D92C20); }
@keyframes slideIn { from{opacity:0; transform:translateY(-8px);} to{opacity:1; transform:none;} }

@media(max-width:1100px){ .grid{grid-template-columns:repeat(3,1fr);} .roi-grid{grid-template-columns:repeat(2,1fr);} }

/* ================= 登录页（双栏 HERO：左品牌动效 + 右登录卡） ================= */
@keyframes fadeUp { from{opacity:0; transform:translateY(20px);} to{opacity:1; transform:none;} }
.login-wrap {
  min-height:100vh; display:flex;
  background:#0B1220;
}
/* ---------- 左侧品牌区 ---------- */
.login-left {
  flex:1.15; position:relative; overflow:hidden;
  display:flex; flex-direction:column; justify-content:center;
  padding:64px 72px;
  background:linear-gradient(135deg,#0B1220 0%,#0E1B3D 55%,#1B2350 100%);
}
#lg-canvas { position:absolute; inset:0; width:100%; height:100%; }
.lg-hero { position:relative; z-index:2; max-width:560px; animation:fadeUp .7s ease; }
.lg-badge {
  display:inline-flex; align-items:center; gap:8px;
  font-size:12px; letter-spacing:.14em; color:#9EC3FF;
  border:1px solid rgba(10,132,255,.45); border-radius:9999px;
  padding:6px 16px; margin-bottom:26px;
  background:rgba(10,132,255,.10);
}
.lg-badge-dot {
  width:7px; height:7px; border-radius:50%; background:#34C759;
  animation:pulse 1.5s infinite;
}
.lg-title {
  margin:0 0 18px; font-size:44px; line-height:1.28;
  font-weight:800; color:#FFFFFF; letter-spacing:.01em;
}
.lg-grad {
  background:linear-gradient(135deg,#4DA8FF,#8E8BFF 60%,#B78BFF);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.lg-desc {
  margin:0 0 30px; font-size:14.5px; line-height:1.9;
  color:rgba(226,232,255,.72);
}
.lg-feats { list-style:none; margin:0 0 34px; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:16px 22px; }
.lg-feats li { display:flex; gap:11px; align-items:flex-start; }
.lg-fi {
  width:36px; height:36px; flex-shrink:0; border-radius:10px;
  display:flex; align-items:center; justify-content:center; font-size:17px;
  background:rgba(10,132,255,.16);
  border:1px solid rgba(10,132,255,.30);
}
.lg-feats b { display:block; font-size:13.5px; color:#EAF0FF; margin-bottom:2px; }
.lg-feats span { font-size:12px; color:rgba(190,203,240,.60); }
.lg-stats { display:flex; gap:38px; }
.lg-stats b {
  display:block; font-size:26px; font-weight:800;
  background:linear-gradient(135deg,#4DA8FF,#8E8BFF);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.lg-stats span { font-size:12px; color:rgba(190,203,240,.55); }
.lg-foot {
  position:absolute; left:72px; bottom:28px; z-index:2;
  font-size:11px; letter-spacing:.18em; color:rgba(160,175,220,.35);
}
/* ---------- 右侧登录卡 ---------- */
.login-right {
  width:460px; flex-shrink:0; position:relative; z-index:2;
  background:#F4F5F9;
  display:flex; align-items:center; justify-content:center;
  padding:40px 44px;
}
.login-card {
  background:#fff; border-radius:18px; padding:40px 38px; width:100%;
  max-width:390px;
  box-shadow:0 24px 64px rgba(11,18,32,.28);
  text-align:center;
  animation:fadeUp .6s ease .1s both;
}
.login-logo {
  font-size:15px; font-weight:800; color:#fff;
  width:52px; height:52px; border-radius:16px; margin:0 auto;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#0A84FF,#5856D6);
  box-shadow:0 6px 16px rgba(10,132,255,.4);
}
.login-card h1 { margin:14px 0 4px; font-size:23px; color:#18181B; }
.login-sub { font-size:12px; color:#71717A; margin-bottom:18px; }
.login-card label { display:block; text-align:left; font-size:12px; color:#52525B; margin:12px 0 5px; }
.login-card input {
  width:100%; padding:11px 12px; border:1px solid #E4E6EF;
  border-radius:10px; font-size:14px; transition:border-color .2s, box-shadow .2s;
}
.login-card input:focus { outline:none; border-color:#0A84FF; box-shadow:0 0 0 3px rgba(10,132,255,.14); }
.login-btn {
  width:100%; margin-top:20px; padding:12.5px; font-size:15px;
  background:linear-gradient(to right,#0A84FF,#5856D6) !important;
  color:#fff !important; font-weight:600; border:none; border-radius:10px;
  cursor:pointer; box-shadow:0 4px 14px rgba(10,132,255,.35);
  transition:all .2s;
}
.login-btn:hover { filter:brightness(1.08); transform:translateY(-1px); box-shadow:0 8px 20px rgba(10,132,255,.45); }
.login-err { background:#FFF1F0; color:#FF3B30; padding:8px; border-radius:8px; font-size:13px; margin-bottom:8px; }
.login-hint { margin-top:18px; font-size:11px; color:#A1A1AA; line-height:1.9; }

/* ---------- 登录页响应式：窄屏只留登录卡，品牌区横置精简 ---------- */
@media(max-width:980px){
  .login-wrap { flex-direction:column; }
  .login-left { padding:44px 32px 40px; flex:none; }
  .lg-title { font-size:30px; }
  .lg-feats { grid-template-columns:1fr; gap:12px; }
  .lg-stats { gap:24px; }
  .lg-foot { display:none; }
  .login-right { width:100%; padding:36px 22px 48px; }
}

/* ================= 通用补充 ================= */
.nav-badge {
  background:#FF3B30; color:#fff; font-size:11px;
  border-radius:9999px; padding:1px 8px; margin-left:auto;
  font-weight:600;
}
.grid.g4 { grid-template-columns:repeat(4,1fr); }
.grid.g6 { grid-template-columns:repeat(6,1fr); }
.ipt {
  border:1px solid #E4E6EF; border-radius:10px; padding:9px 12px;
  font-size:13px; background:#fff; color:#18181B;
  transition:border-color .2s, box-shadow .2s; font-family:inherit;
}
.ipt:focus { outline:none; border-color:#0A84FF; box-shadow:0 0 0 3px rgba(10,132,255,.12); }
.tag {
  display:inline-block; font-size:11px; background:#F4F5F9; color:#52525B;
  padding:2px 10px; border-radius:9999px; font-weight:500;
}
.tag.ok { background:#F0FFF4; color:#059669; }
.tag.warn { background:#FFFBEB; color:#B45309; }
.tag.bad { background:#FFF1F0; color:#FF3B30; }
.pill.gS { background:#FF3B30; } .pill.gA { background:#F97316; } .pill.gB { background:#0A84FF; } .pill.gC { background:#A1A1AA; }
.err { background:#FFF1F0; color:#FF3B30; padding:16px; border-radius:12px; margin-top:20px; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:10px 0 16px; }
.form-grid label { font-size:12px; color:#52525B; display:block; }
.form-grid input, .form-grid select {
  width:100%; margin-top:4px; padding:8px 10px;
  border:1px solid #E4E6EF; border-radius:10px; font-size:13px;
  transition:border-color .2s, box-shadow .2s; font-family:inherit;
}
.form-grid input:focus, .form-grid select:focus { outline:none; border-color:#0A84FF; box-shadow:0 0 0 3px rgba(10,132,255,.12); }

/* ================= 平台接入手册 ================= */
.pb-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.pb-card { margin-bottom:0; transition:all .3s; }
.pb-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(10,132,255,.12); }
.pb-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.pb-head b { font-size:15px; }
.pb-line { font-size:12.5px; color:#52525B; margin-bottom:6px; line-height:1.6; }
.pb-line a { color:#0A84FF; word-break:break-all; }
.pb-steps {
  background:#F8F9FC; border-radius:10px; padding:10px 12px;
  margin:10px 0; font-size:12.5px; color:#3F3F46; line-height:2;
  border:1px solid #EEF0F6;
}
.pb-note {
  font-size:12px; color:#B45309; background:#FFFBEB;
  border-radius:8px; padding:8px 10px; line-height:1.6;
  border:1px solid #FDEBC8;
}

/* ================= 通知中心 ================= */
.notice {
  background:#fff; border-radius:14px; padding:14px 18px; margin-bottom:10px;
  box-shadow:0 1px 4px rgba(24,24,27,.05);
  border-left:4px solid #A1A1AA; cursor:pointer;
  transition:all .3s;
}
.notice:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(10,132,255,.10); }
.notice.urgent { border-left-color:#FF3B30; background:#FFFAFA; }
.notice.info { border-left-color:#0A84FF; }
.notice.read { opacity:.55; }
.n-head { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:6px; }
.n-head b { font-size:13.5px; }
.n-body { font-size:13px; color:#52525B; line-height:1.8; }
@media(max-width:1100px){ .pb-grid{grid-template-columns:1fr;} .grid.g4{grid-template-columns:repeat(2,1fr);} }

/* v3 新增：AI对话/审计/客户视图 */
.panel.warn { border:1px solid #FFD4D1; }
.dlg-box {
  background:#F8F9FC; border-radius:12px; padding:12px;
  min-height:80px; max-height:300px; overflow:auto;
  display:flex; flex-direction:column; gap:8px;
  border:1px solid #EEF0F6;
}
.dlg-row {
  font-size:13px; padding:8px 12px; border-radius:12px;
  max-width:82%; line-height:1.6;
}
.dlg-row.in { background:#fff; border:1px solid #E8EAF1; align-self:flex-start; }
.dlg-row.out {
  background:linear-gradient(to right,#0A84FF,#5856D6);
  color:#fff; align-self:flex-end;
  box-shadow:0 2px 8px rgba(10,132,255,.25);
}
.dlg-dir { display:inline-block; font-size:11px; opacity:.7; margin-right:6px; }
.row .ipt { flex:1; }
textarea.ipt { resize:vertical; font-family:inherit; line-height:1.7; }
