/* ====== 31 组织架构图生成器 · 蓝图纸 + 工程标注 ====== */
.tsk.org{
  --tsk-bg:#f4f7fc;
  --tsk-card:#ffffff;
  --tsk-card-2:#f7faff;
  --tsk-ink:#0e1b33;
  --tsk-sub:#4d5e7a;
  --tsk-faint:#8494ab;
  --tsk-line:#dbe4f1;
  --tsk-line-2:#edf2f9;
  --tsk-brand:#1f4fd8;
  --tsk-brand-2:#0d3aa6;
  --tsk-brand-soft:#e9efff;
  --tsk-brand-ink:#1840b0;
  --tsk-accent:#d98a1f;
  --tsk-accent-soft:#fdf2df;
  --tsk-ok:#0f7d55;
  --tsk-ok-soft:#e4f6ee;
  --tsk-shadow-sm:0 1px 2px rgba(14,27,51,.06),0 8px 20px rgba(14,27,51,.05);
  --tsk-shadow:0 2px 6px rgba(14,27,51,.08),0 20px 46px rgba(14,27,51,.08);
  background:
    linear-gradient(90deg, rgba(31,79,216,.035) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(rgba(31,79,216,.035) 1px, transparent 1px) 0 0 / 32px 32px,
    radial-gradient(680px 300px at 96% -10%, rgba(31,79,216,.10), transparent 62%),
    var(--tsk-bg);
}
:root[data-theme="dark"] .tsk.org{
  --tsk-bg:#0a1120;
  --tsk-card:#121a2c;
  --tsk-card-2:#172135;
  --tsk-ink:#e8effc;
  --tsk-sub:#a6b6ce;
  --tsk-faint:#71829b;
  --tsk-line:#26334a;
  --tsk-line-2:#1d283d;
  --tsk-brand:#6f96ff;
  --tsk-brand-2:#8fb0ff;
  --tsk-brand-soft:rgba(111,150,255,.14);
  --tsk-brand-ink:#9dbaff;
  --tsk-accent:#f0b45c;
  --tsk-accent-soft:rgba(240,180,92,.13);
  --tsk-ok:#4cd39a;
  --tsk-ok-soft:rgba(76,211,154,.13);
  --tsk-shadow-sm:0 1px 2px rgba(0,0,0,.5),0 8px 20px rgba(0,0,0,.3);
  --tsk-shadow:0 2px 6px rgba(0,0,0,.55),0 20px 46px rgba(0,0,0,.4);
  background:
    linear-gradient(90deg, rgba(111,150,255,.05) 1px, transparent 1px) 0 0 / 32px 32px,
    linear-gradient(rgba(111,150,255,.05) 1px, transparent 1px) 0 0 / 32px 32px,
    radial-gradient(680px 300px at 96% -10%, rgba(111,150,255,.12), transparent 62%),
    var(--tsk-bg);
}

/* ---------- 首屏 ---------- */
.org-hero{display:grid;grid-template-columns:minmax(0,1fr) 394px;gap:30px;padding:30px 0 24px;align-items:stretch;}
.org-hero-l{display:flex;flex-direction:column;}
.org-hero-l>.tsk-hs{flex:1 1 auto;}
.org-hero-l .tsk-h1 b{color:var(--tsk-brand-ink);}
.org-hero-r{align-self:start;}

.org-seed{
  background:var(--tsk-card);
  border:1px solid var(--tsk-line);
  border-radius:14px;
  box-shadow:var(--tsk-shadow);
  overflow:hidden;
  position:relative;
}
.org-seed::before{
  content:"";
  position:absolute;inset:0 0 auto 0;height:4px;
  background:linear-gradient(90deg,var(--tsk-brand),var(--tsk-accent));
}
.org-seed-hd{
  display:flex;align-items:baseline;justify-content:space-between;
  padding:16px 18px 11px;
  border-bottom:1px dashed var(--tsk-line);
}
.org-seed-hd b{font-size:14px;font-weight:800;letter-spacing:.01em;}
.org-seed-hd small{font:700 9.5px/1 var(--tsk-num);letter-spacing:.16em;color:var(--tsk-faint);}
.org-seed-hd+label{display:block;}
.org-field{display:block;padding:11px 18px 0;}
.org-field>span{display:block;margin-bottom:6px;font-size:11.5px;font-weight:800;color:var(--tsk-sub);letter-spacing:.03em;}
.org-field input,.org-field select{
  width:100%;height:38px;padding:0 11px;
  border:1.5px solid var(--tsk-line);border-radius:8px;
  background:var(--tsk-card-2);color:var(--tsk-ink);
  font:600 13.5px/38px var(--tsk-font);outline:none;
  transition:border-color .15s,box-shadow .15s;
}
.org-field select{cursor:pointer;}
.org-field input:focus,.org-field select:focus{border-color:var(--tsk-brand);box-shadow:0 0 0 3px var(--tsk-brand-soft);}
.org-err{display:none;margin-top:5px;font-size:11.5px;font-style:normal;font-weight:700;color:var(--tsk-bad);}
.org-field.bad input{border-color:var(--tsk-bad);box-shadow:0 0 0 3px var(--tsk-bad-soft);}
.org-field.bad .org-err{display:block;}
.org-seed-row{display:grid;grid-template-columns:1fr 1fr;gap:2px;}
.org-seed-acts{display:flex;gap:8px;padding:15px 18px 0;}
.org-btn{
  flex:1;height:40px;border-radius:9px;cursor:pointer;
  border:1.5px solid var(--tsk-line);background:var(--tsk-card-2);
  color:var(--tsk-sub);font:800 13px/1 var(--tsk-font);
  transition:.15s;
}
.org-btn:hover{border-color:var(--tsk-brand);color:var(--tsk-brand-ink);}
.org-btn-main{
  background:linear-gradient(135deg,var(--tsk-brand),var(--tsk-brand-2));
  border-color:transparent;color:#fff;
  box-shadow:0 8px 20px rgba(31,79,216,.24);
}
.org-btn-main:hover{filter:brightness(1.07);color:#fff;}
:root[data-theme="dark"] .org-btn-main{color:#0a1120;}
:root[data-theme="dark"] .org-btn-main:hover{color:#0a1120;}
.org-seed-note{padding:11px 18px 16px;font-size:10.5px;line-height:1.75;color:var(--tsk-faint);}

/* ---------- 工作台 ---------- */
.org-stage{
  margin-top:10px;
  border:1px solid var(--tsk-line);
  border-radius:16px;
  background:var(--tsk-card);
  box-shadow:var(--tsk-shadow);
  overflow:hidden;
}
.org-stage-hd{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  padding:17px 20px;
  border-bottom:1px solid var(--tsk-line);
  background:linear-gradient(180deg,var(--tsk-card) 0%,var(--tsk-card-2) 100%);
}
.org-stage-sub{margin-top:3px;font-size:12px;color:var(--tsk-faint);}
.org-tools{display:flex;flex-wrap:wrap;gap:7px;align-items:center;}
.org-tool{
  height:32px;padding:0 12px;border-radius:7px;cursor:pointer;
  border:1px solid var(--tsk-line);background:var(--tsk-card);
  color:var(--tsk-sub);font:700 12px/1 var(--tsk-font);
  transition:.14s;
}
.org-tool:hover{border-color:var(--tsk-brand);color:var(--tsk-brand-ink);}
.org-tool.is-key{background:var(--tsk-brand-soft);border-color:rgba(31,79,216,.26);color:var(--tsk-brand-ink);}
.org-zoom{min-width:46px;text-align:center;font:800 12px/1 var(--tsk-num);color:var(--tsk-faint);}

.org-grid{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:540px;}
.org-editor-panel{border-right:1px solid var(--tsk-line);background:var(--tsk-card-2);display:flex;flex-direction:column;min-width:0;}
.org-editor-bar{display:flex;align-items:center;justify-content:space-between;padding:13px 15px 8px;}
.org-editor-bar b{font-size:12.5px;font-weight:800;color:var(--tsk-ink);}
.org-editor-bar span{font:800 11px/1 var(--tsk-num);color:var(--tsk-brand-ink);background:var(--tsk-brand-soft);padding:4px 8px;border-radius:99px;}
.org-editor-tip{padding:0 15px 10px;font-size:10.5px;line-height:1.7;color:var(--tsk-faint);border-bottom:1px dashed var(--tsk-line);}
.org-editor{flex:1;overflow:auto;max-height:560px;padding:10px 8px 18px 8px;}

/* 树行 */
.org-row{
  display:grid;
  grid-template-columns:18px minmax(0,1fr) 56px 26px 22px 22px;
  gap:4px;align-items:center;
  padding:4px 4px 4px calc(4px + var(--org-d,0) * 14px);
  border-radius:6px;
}
.org-row:hover{background:var(--tsk-card);}
.org-row.is-root{background:var(--tsk-brand-soft);border:1px solid rgba(31,79,216,.16);padding-top:6px;padding-bottom:6px;}
.org-tw{
  width:18px;height:18px;padding:0;border:0;background:transparent;cursor:pointer;
  color:var(--tsk-faint);font:800 11px/1 var(--tsk-num);
}
.org-tw.is-leaf{visibility:hidden;}
.org-nm,.org-rl{
  min-width:0;height:24px;padding:0 5px;border:1px solid transparent;border-radius:4px;
  background:transparent;color:var(--tsk-ink);font:700 11.5px/24px var(--tsk-font);outline:none;
}
.org-rl{color:var(--tsk-faint);font-weight:700;font-size:10.5px;}
.org-nm:focus,.org-rl:focus{background:var(--tsk-card);border-color:var(--tsk-brand);}
.org-rl:focus{border-color:var(--tsk-line);}
.org-act{
  width:21px;height:21px;padding:0;border-radius:4px;cursor:pointer;
  border:1px solid var(--tsk-line);background:var(--tsk-card);
  color:var(--tsk-sub);font:800 12px/1 var(--tsk-num);
  transition:.14s;
}
.org-act:hover{border-color:var(--tsk-brand);color:var(--tsk-brand-ink);}
.org-act.is-del:hover{border-color:var(--tsk-bad);color:var(--tsk-bad);background:var(--tsk-bad-soft);}
.org-dash{
  width:26px;height:21px;padding:0;border-radius:4px;cursor:pointer;
  border:1px dashed var(--tsk-line);background:var(--tsk-card);
  color:var(--tsk-faint);font:800 10px/1 var(--tsk-font);
  transition:.14s;
}
.org-dash:hover{border-color:var(--tsk-accent);color:var(--tsk-accent);}
.org-dash.on{background:var(--tsk-accent-soft);border-color:var(--tsk-accent);color:var(--tsk-accent);}
.org-act-hold{display:block;}
.org-branch{display:block;}
.org-branch[hidden]{display:none;}

/* 画布 */
.org-canvas{
  min-width:0;overflow:auto;
  background-color:var(--tsk-card);
  background-image:radial-gradient(circle at 1px 1px, rgba(31,79,216,.16) 1px, transparent 1.6px);
  background-size:22px 22px;
}
:root[data-theme="dark"] .org-canvas{
  background-image:radial-gradient(circle at 1px 1px, rgba(111,150,255,.20) 1px, transparent 1.6px);
}
.org-canvas-grid{min-height:540px;padding:26px;display:flex;align-items:flex-start;justify-content:center;}
.org-canvas-grid svg{display:block;height:auto;margin:0 auto;shape-rendering:geometricPrecision;}
.org-empty{padding:100px 20px;color:var(--tsk-faint);font-size:13px;text-align:center;}

/* ---------- 指标条 ---------- */
.org-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:14px;}
.org-stat{
  position:relative;
  padding:15px 17px 14px;border:1px solid var(--tsk-line);border-radius:11px;
  background:var(--tsk-card);box-shadow:var(--tsk-shadow-sm);
}
.org-stat::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--tsk-brand);}
.org-stat b{display:block;font:800 26px/1.1 var(--tsk-num);color:var(--tsk-ink);font-variant-numeric:tabular-nums;}
.org-stat span{display:block;margin-top:4px;font-size:11.5px;font-weight:800;color:var(--tsk-sub);}
.org-stat i{display:block;margin-top:2px;font-style:normal;font-size:10.5px;color:var(--tsk-faint);}

/* ---------- 组织形态 ---------- */
.org-shapes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.org-shape{
  position:relative;padding:20px 20px 16px;border:1px solid var(--tsk-line);border-radius:13px;
  background:var(--tsk-card);box-shadow:var(--tsk-shadow-sm);
  overflow:hidden;
}
.org-shape::after{content:"";position:absolute;right:-20px;bottom:-20px;width:74px;height:74px;border-radius:50%;border:1px dashed rgba(31,79,216,.22);}
.org-shape-no{font:800 11px/1 var(--tsk-num);letter-spacing:.12em;color:var(--tsk-accent);}
.org-shape h3{margin:8px 0 7px;font-size:17px;font-weight:800;color:var(--tsk-ink);}
.org-shape p{margin:0;font-size:12.5px;line-height:1.85;color:var(--tsk-sub);}
.org-shape em{display:inline-block;margin-top:11px;padding:4px 10px;border-radius:99px;background:var(--tsk-brand-soft);color:var(--tsk-brand-ink);font:700 10.5px/1.7 var(--tsk-font);font-style:normal;}

/* ---------- 自查 ---------- */
.org-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.org-check{
  display:grid;grid-template-columns:1fr;gap:4px;
  padding:16px 18px;border:1px solid var(--tsk-line);border-left:3px solid var(--tsk-accent);border-radius:9px;
  background:var(--tsk-card);box-shadow:var(--tsk-shadow-sm);
}
.org-check b{font-size:13px;font-weight:800;color:var(--tsk-ink);}
.org-check span{font-size:12px;line-height:1.8;color:var(--tsk-sub);}

/* ---------- Toast ---------- */
.org-toast{
  position:fixed;left:50%;bottom:32px;transform:translate(-50%,16px);
  z-index:9999;max-width:86vw;padding:10px 20px;border-radius:99px;
  background:var(--tsk-ink);color:var(--tsk-bg);
  font-size:13px;font-weight:700;text-align:center;
  opacity:0;pointer-events:none;transition:.24s;
  box-shadow:var(--tsk-shadow);
}
.org-toast.show{opacity:1;transform:translate(-50%,0);}

/* ---------- 响应式 ---------- */
@media (max-width:1080px){
  .org-grid{grid-template-columns:1fr;}
  .org-editor-panel{border-right:0;border-bottom:1px solid var(--tsk-line);}
  .org-editor{max-height:320px;}
  .org-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:900px){
  .org-hero{grid-template-columns:1fr;gap:22px;}
  .org-seed-row{grid-template-columns:1fr;}
  .org-shapes{grid-template-columns:1fr;}
  .org-checks{grid-template-columns:1fr;}
  .org-stage-hd{padding:14px 15px;}
}
@media (max-width:560px){
  .org-stats{grid-template-columns:1fr 1fr;}
  .org-canvas-grid{padding:14px;}
  .org-tools{width:100%;}
}
