:root{
    --ink:#18140F;
    --ink-2:#241E17;
    --ink-3:#332B21;
    --paper:#FFFFFF;
    --cloth:#FBF8F3;
    --line:#EAE2D6;
    --line-2:#DCD1BF;
    --muted:#7A7060;
    --muted-2:#948A78;
    --orange:#FF5A1F;
    --orange-deep:#DE4610;
    --orange-tint:#FFEDE2;
    --orange-tint-2:#FFDCC4;
    --good:#1E8A5F;
    --good-tint:#E4F4EC;
    --warn:#B5790A;
    --warn-tint:#FBF0DA;
    --bad:#C7362A;
    --bad-tint:#FBE7E4;
    --info:#3457D5;
    --info-tint:#E8ECFB;
    --shadow-sm: 0 1px 2px rgba(24,20,15,.06);
    --shadow-md: 0 8px 24px rgba(24,20,15,.10);
    --shadow-lg: 0 24px 64px rgba(24,20,15,.22);
    --radius-s:8px;
    --radius-m:12px;
    --radius-l:18px;
    --sidebar-w:250px;
    color-scheme: light;
  }
  *{box-sizing:border-box;}
  html,body{height:100%;}
  body{
    margin:0;
    background:var(--cloth);
    color:var(--ink);
    font-family:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size:14px;
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{margin:0; font-weight:700; text-wrap:balance; letter-spacing:-.01em;}
  p{margin:0;}
  button{font-family:inherit; cursor:pointer;}
  input,select,textarea{font-family:inherit; font-size:inherit; color:inherit;}
  a{color:inherit;}
  .mono{font-family:'JetBrains Mono', ui-monospace, monospace; font-variant-numeric:tabular-nums;}
  ::selection{background:var(--orange-tint-2);}
  :focus-visible{outline:2px solid var(--orange); outline-offset:2px; border-radius:4px;}
  svg{display:block;}

  /* ---------- app shell ---------- */
  .shell{display:flex; min-height:100vh;}

  /* ---------- sidebar ---------- */
  .sidebar{
    width:var(--sidebar-w); flex:none; background:var(--ink);
    color:#F4EEE4; display:flex; flex-direction:column;
    position:sticky; top:0; height:100vh; overflow-y:auto;
  }
  .brand{display:flex; align-items:center; gap:10px; padding:20px 18px 16px;}
  .brand-mark{
    width:34px; height:34px; border-radius:9px; background:var(--orange);
    display:flex; align-items:center; justify-content:center; flex:none;
    box-shadow:0 4px 10px rgba(255,90,31,.35);
  }
  .brand-mark svg{stroke:var(--ink);}
  .brand-name{font-weight:800; font-size:16.5px; color:#fff; letter-spacing:-.01em;}
  .brand-org{font-size:11.5px; color:#B6AA97; margin-top:1px;}

  .event-switcher{
    margin:2px 14px 14px; padding:9px 11px; border-radius:var(--radius-m);
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08);
    display:flex; align-items:center; gap:9px; cursor:pointer;
    transition:background .15s;
  }
  .event-switcher:hover{background:rgba(255,255,255,.1);}
  .event-dot{width:8px; height:8px; border-radius:50%; background:var(--orange); flex:none; box-shadow:0 0 0 3px rgba(255,90,31,.22);}
  .event-info{min-width:0; flex:1;}
  .event-label{font-size:10px; text-transform:uppercase; letter-spacing:.07em; color:#8E836F;}
  .event-name{font-size:12.5px; font-weight:600; color:#F4EEE4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .event-switcher svg{stroke:#8E836F; flex:none;}

  .nav-group-label{
    font-size:10.5px; text-transform:uppercase; letter-spacing:.08em; color:#786D5B;
    padding:14px 18px 6px;
  }
  .nav{list-style:none; margin:0; padding:0 10px;}
  .nav-item{margin-bottom:2px;}
  .nav-link{
    display:flex; align-items:center; gap:11px; padding:9px 10px; border-radius:var(--radius-s);
    color:#CFC4B2; text-decoration:none; font-size:13.5px; font-weight:600;
    border-left:3px solid transparent; position:relative;
    transition:background .15s, color .15s;
  }
  .nav-link svg{stroke:#9C9080; flex:none; transition:stroke .15s;}
  .nav-link:hover{background:rgba(255,255,255,.06); color:#fff;}
  .nav-link:hover svg{stroke:#fff;}
  .nav-link.active{background:rgba(255,90,31,.14); color:#fff; border-left-color:var(--orange);}
  .nav-link.active svg{stroke:var(--orange);}
  .nav-badge{
    margin-left:auto; background:var(--orange); color:var(--ink); font-size:10px; font-weight:800;
    padding:1px 6px; border-radius:20px;
  }

  .sidebar-foot{margin-top:auto; padding:12px 14px 16px; border-top:1px solid rgba(255,255,255,.08);}
  .user-chip{display:flex; align-items:center; gap:9px; padding:8px; border-radius:var(--radius-s); cursor:pointer;}
  .user-chip:hover{background:rgba(255,255,255,.06);}
  .user-avatar{
    width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg,var(--orange),#FF8A50);
    display:flex; align-items:center; justify-content:center; font-weight:800; font-size:12.5px; color:var(--ink); flex:none;
  }
  .user-name{font-size:12.5px; font-weight:700; color:#F4EEE4;}
  .user-role{font-size:11px; color:#8E836F;}

  /* ---------- main ---------- */
  .main{flex:1; min-width:0; display:flex; flex-direction:column;}
  .topbar{
    position:sticky; top:0; z-index:20; background:rgba(251,248,243,.92); backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line); padding:16px 28px 0;
  }
  .topbar-row{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap;}
  .page-eyebrow{font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:700; margin-bottom:3px;}
  .page-title{font-size:22px; display:flex; align-items:center; gap:10px;}
  .topbar-actions{display:flex; align-items:center; gap:10px; padding-top:2px;}

  .tabs{display:flex; gap:4px; margin-top:16px;}
  .tab{
    padding:9px 4px; margin-right:20px; background:none; border:none; border-bottom:2px solid transparent;
    color:var(--muted); font-weight:700; font-size:13.5px; display:flex; align-items:center; gap:7px;
  }
  .tab:hover{color:var(--ink);}
  .tab.active{color:var(--ink); border-bottom-color:var(--orange);}
  .tab .count{background:var(--line); color:var(--muted); font-size:11px; padding:1px 6px; border-radius:20px; font-weight:700;}
  .tab.active .count{background:var(--orange-tint); color:var(--orange-deep);}

  .content{padding:22px 28px 60px; flex:1;}
  .view{display:none;}
  .view.active{display:block;}
  .subview{display:none;}
  .subview.active{display:block;}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex; align-items:center; gap:7px; padding:9px 15px; border-radius:10px;
    font-weight:700; font-size:13px; border:1px solid transparent; white-space:nowrap;
    transition:transform .08s, box-shadow .15s, background .15s, border-color .15s;
  }
  .btn:active{transform:translateY(1px);}
  .btn svg{width:15px; height:15px;}
  .btn-primary{background:var(--orange); color:#fff; box-shadow:0 2px 0 var(--orange-deep), var(--shadow-sm);}
  .btn-primary:hover{background:var(--orange-deep);}
  .btn-dark{background:var(--ink); color:#fff;}
  .btn-dark:hover{background:var(--ink-2);}
  .btn-ghost{background:transparent; color:var(--ink); border-color:var(--line-2);}
  .btn-ghost:hover{background:var(--paper); border-color:var(--muted-2);}
  .btn-soft{background:var(--orange-tint); color:var(--orange-deep);}
  .btn-soft:hover{background:var(--orange-tint-2);}
  .btn-sm{padding:6px 11px; font-size:12px; border-radius:8px;}
  .btn-icon{padding:8px; border-radius:9px; background:transparent; border:1px solid var(--line-2); color:var(--muted);}
  .btn-icon:hover{background:var(--paper); color:var(--ink);}
  .btn[disabled]{opacity:.45; pointer-events:none;}

  .chip{
    display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:30px;
    border:1px solid var(--line-2); background:var(--paper); color:var(--muted); font-weight:700; font-size:12.5px;
  }
  .chip:hover{border-color:var(--muted-2); color:var(--ink);}
  .chip.active{background:var(--ink); color:#fff; border-color:var(--ink);}
  .chip-row{display:flex; gap:8px; flex-wrap:wrap;}

  .field{display:flex; flex-direction:column; gap:6px;}
  .field label{font-size:12px; font-weight:700; color:var(--ink-2);}
  .field .hint{font-size:11.5px; color:var(--muted); font-weight:500;}
  .input, .select, .textarea{
    border:1.5px solid var(--line-2); background:var(--paper); border-radius:9px; padding:9px 11px;
    font-size:13.5px; color:var(--ink); width:100%;
  }
  .input:focus, .select:focus, .textarea:focus{border-color:var(--orange); outline:none; box-shadow:0 0 0 3px var(--orange-tint);}
  .textarea{resize:vertical; min-height:70px; font-family:inherit;}
  .switch{position:relative; width:38px; height:22px; flex:none;}
  .switch input{opacity:0; width:0; height:0;}
  .switch .track{position:absolute; inset:0; background:var(--line-2); border-radius:20px; transition:.15s;}
  .switch .knob{position:absolute; top:2px; left:2px; width:18px; height:18px; background:#fff; border-radius:50%; box-shadow:var(--shadow-sm); transition:.15s;}
  .switch input:checked + .track{background:var(--orange);}
  .switch input:checked + .track .knob{transform:translateX(16px);}
  .switch input:checked ~ .knob{transform:translateX(16px);}

  /* ---------- cards / surfaces ---------- */
  .card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-m); box-shadow:var(--shadow-sm);}
  .grid{display:grid; gap:16px;}
  .grid-4{grid-template-columns:repeat(4,1fr);}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-2{grid-template-columns:repeat(2,1fr);}
  @media (max-width:1180px){ .grid-4{grid-template-columns:repeat(2,1fr);} .grid-3{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:720px){ .grid-4,.grid-3,.grid-2{grid-template-columns:1fr;} }

  .stat-tile{padding:17px 18px;}
  .stat-top{display:flex; align-items:center; justify-content:space-between;}
  .stat-label{font-size:12px; color:var(--muted); font-weight:700; text-transform:uppercase; letter-spacing:.03em;}
  .stat-icon{width:30px; height:30px; border-radius:8px; background:var(--orange-tint); display:flex; align-items:center; justify-content:center; flex:none;}
  .stat-icon svg{stroke:var(--orange-deep); width:16px; height:16px;}
  .stat-value{font-size:26px; font-weight:800; margin-top:10px; letter-spacing:-.02em;}
  .stat-delta{display:inline-flex; align-items:center; gap:3px; font-size:11.5px; font-weight:700; margin-top:7px; padding:2px 7px; border-radius:20px;}
  .stat-delta.up{color:var(--good); background:var(--good-tint);}
  .stat-delta.down{color:var(--bad); background:var(--bad-tint);}

  .section-title{font-size:15px; font-weight:800; display:flex; align-items:center; justify-content:space-between; margin-bottom:14px;}
  .section-title .sub{font-size:12px; color:var(--muted); font-weight:600;}

  /* ---------- table ---------- */
  .table-wrap{overflow-x:auto;}
  table{width:100%; border-collapse:collapse; min-width:640px;}
  thead th{
    text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted);
    padding:0 14px 10px; border-bottom:1px solid var(--line); font-weight:700; white-space:nowrap;
  }
  tbody td{padding:13px 14px; border-bottom:1px solid var(--line); font-size:13.5px; vertical-align:middle;}
  tbody tr:last-child td{border-bottom:none;}
  tbody tr:hover{background:#FFFCF9;}
  .cell-main{font-weight:700;}
  .cell-sub{font-size:11.5px; color:var(--muted); margin-top:2px;}

  .badge{display:inline-flex; align-items:center; gap:5px; padding:3px 9px; border-radius:20px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.02em;}
  .badge.dot::before{content:''; width:6px; height:6px; border-radius:50%; background:currentColor;}
  .badge-sent, .badge-active, .badge-connected{background:var(--good-tint); color:var(--good);}
  .badge-scheduled, .badge-paused{background:var(--warn-tint); color:var(--warn);}
  .badge-failed, .badge-attention{background:var(--bad-tint); color:var(--bad);}
  .badge-draft, .badge-notconnected{background:#EFEAE1; color:var(--muted);}
  .badge-sending{background:var(--info-tint); color:var(--info);}

  .ch-dot{width:9px; height:9px; border-radius:3px; flex:none;}
  .ch-wa{background:#25B26A;} .ch-rcs{background:#3457D5;} .ch-sms{background:#B5790A;} .ch-email{background:var(--orange);} .ch-app{background:#8B5CF6;}
  .ch-pill{display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; padding:4px 9px 4px 7px; border-radius:20px; background:var(--cloth); border:1px solid var(--line);}
  .ch-stack{display:flex; gap:4px;}

  .empty{padding:60px 20px; text-align:center; color:var(--muted);}
  .empty svg{stroke:var(--line-2); margin:0 auto 14px;}
  .empty h3{color:var(--ink); font-size:15px; margin-bottom:5px;}

  /* ---------- template gallery ---------- */
  .tpl-card{display:flex; flex-direction:column; overflow:hidden;}
  .tpl-preview{
    height:150px; background:var(--cloth); border-bottom:1px solid var(--line); position:relative;
    display:flex; align-items:center; justify-content:center; padding:14px; overflow:hidden;
  }
  .tpl-body{padding:13px 14px 14px;}
  .tpl-name{font-weight:700; font-size:13.5px;}
  .tpl-meta{font-size:11.5px; color:var(--muted); margin-top:3px;}
  .tpl-foot{display:flex; align-items:center; justify-content:space-between; margin-top:11px; padding-top:11px; border-top:1px solid var(--line);}
  .icon-btn-row{display:flex; gap:4px;}

  /* mini phone / email preview chrome used inside template cards */
  .mini-phone{width:104px; height:126px; background:#fff; border-radius:14px; box-shadow:0 6px 18px rgba(24,20,15,.14); padding:9px 7px; display:flex; flex-direction:column; gap:5px; border:1px solid var(--line);}
  .mini-bubble{background:var(--cloth); border-radius:8px; padding:6px 7px; font-size:6.5px; line-height:1.4; color:var(--ink-2);}
  .mini-bubble b{display:block; font-size:6.8px; margin-bottom:2px;}
  .mini-browser{width:100%; height:100%; background:#fff; border-radius:8px; overflow:hidden; border:1px solid var(--line); display:flex; flex-direction:column;}
  .mini-browser .bar{height:14px; background:var(--cloth); display:flex; align-items:center; gap:3px; padding:0 6px; flex:none;}
  .mini-browser .bar span{width:5px; height:5px; border-radius:50%; background:var(--line-2);}
  .mini-browser .frame{flex:1; padding:6px; font-size:6px; overflow:hidden;}

  /* ---------- modal / overlay ---------- */
  .overlay{position:fixed; inset:0; background:rgba(24,20,15,.5); display:none; align-items:center; justify-content:center; z-index:100; padding:24px;}
  .overlay.open{display:flex;}
  .modal{background:var(--paper); border-radius:var(--radius-l); width:100%; max-width:560px; max-height:88vh; display:flex; flex-direction:column; box-shadow:var(--shadow-lg); overflow:hidden;}
  .modal.modal-lg{max-width:760px;}
  .modal-head{display:flex; align-items:center; justify-content:space-between; padding:18px 22px; border-bottom:1px solid var(--line); flex:none;}
  .modal-head h3{font-size:16px;}
  .modal-body{padding:22px; overflow-y:auto;}
  .modal-foot{padding:16px 22px; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; flex:none;}
  .x-btn{width:30px; height:30px; border-radius:8px; border:none; background:transparent; display:flex; align-items:center; justify-content:center; color:var(--muted);}
  .x-btn:hover{background:var(--cloth); color:var(--ink);}
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .form-grid .span2{grid-column:1/-1;}

  /* full-screen editors (email builder / flow builder) */
  .editor-screen{position:fixed; inset:0; background:var(--cloth); z-index:200; display:none; flex-direction:column;}
  .editor-screen.open{display:flex;}
  .editor-top{
    flex:none; background:var(--ink); color:#fff; padding:12px 18px; display:flex; align-items:center; gap:14px;
  }
  .editor-top input.name-input{
    background:transparent; border:none; color:#fff; font-weight:800; font-size:14.5px; padding:5px 8px; border-radius:7px; min-width:180px;
  }
  .editor-top input.name-input:hover, .editor-top input.name-input:focus{background:rgba(255,255,255,.08); outline:none;}
  .editor-top .spacer{flex:1;}
  .mode-toggle{display:flex; background:rgba(255,255,255,.08); border-radius:9px; padding:3px; gap:2px;}
  .mode-toggle button{background:transparent; border:none; color:#C9BEAD; padding:6px 13px; border-radius:7px; font-weight:700; font-size:12.5px;}
  .mode-toggle button.active{background:var(--orange); color:#fff;}
  .editor-body{flex:1; display:flex; overflow:hidden;}

  /* email builder */
  .eb-palette{width:190px; flex:none; background:var(--paper); border-right:1px solid var(--line); padding:14px 12px; overflow-y:auto;}
  .eb-block-btn{
    display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 6px; border:1.5px dashed var(--line-2);
    border-radius:10px; margin-bottom:9px; background:var(--cloth); color:var(--ink-2); font-size:11px; font-weight:700; cursor:grab;
  }
  .eb-block-btn:hover{border-color:var(--orange); color:var(--orange-deep); background:var(--orange-tint);}
  .eb-block-btn svg{stroke:currentColor;}
  .eb-canvas-wrap{flex:1; overflow-y:auto; padding:34px 20px; display:flex; justify-content:center;}
  .eb-canvas{width:600px; max-width:100%; background:#fff; box-shadow:var(--shadow-md); min-height:420px; border:1px solid var(--line);}
  .eb-canvas.drop-hover{outline:2px dashed var(--orange); outline-offset:-2px;}
  .eb-drop-hint{padding:60px 24px; text-align:center; color:var(--muted-2); font-size:13px; border:2px dashed var(--line-2); margin:16px;}
  .eb-block{position:relative; padding:4px; border:1.5px solid transparent;}
  .eb-block:hover{border-color:var(--orange-tint-2);}
  .eb-block.selected{border-color:var(--orange);}
  .eb-block-controls{
    position:absolute; top:-15px; right:6px; display:none; background:var(--ink); border-radius:7px; padding:3px; gap:2px; z-index:5; box-shadow:var(--shadow-sm);
  }
  .eb-block:hover .eb-block-controls, .eb-block.selected .eb-block-controls{display:flex;}
  .eb-block-controls button{width:22px; height:22px; border:none; background:transparent; color:#D8CFC0; border-radius:4px; display:flex; align-items:center; justify-content:center;}
  .eb-block-controls button:hover{background:rgba(255,255,255,.15); color:#fff;}
  .eb-block-controls .grip{cursor:grab; color:var(--orange);}
  .eb-inspector{width:250px; flex:none; background:var(--paper); border-left:1px solid var(--line); padding:16px; overflow-y:auto;}
  .eb-inspector h4{font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:14px;}
  .eb-empty-inspector{color:var(--muted); font-size:12.5px; text-align:center; padding:30px 10px;}
  .code-pane{flex:1; display:flex;}
  .code-pane textarea{
    flex:1; border:none; resize:none; background:#1D1812; color:#EADFCB; font-family:'JetBrains Mono',monospace;
    font-size:12.5px; line-height:1.6; padding:20px; outline:none;
  }
  .code-preview{flex:1; background:var(--cloth); padding:26px; overflow-y:auto; display:flex; justify-content:center;}
  .code-preview iframe{width:600px; max-width:100%; height:100%; border:1px solid var(--line); background:#fff; box-shadow:var(--shadow-md);}

  /* flow builder — node canvas */
  .flow-body{flex:1; display:flex; overflow:hidden; position:relative;}
  .fc-palette{width:186px; flex:none; background:var(--paper); border-right:1px solid var(--line); padding:14px 12px; overflow-y:auto;}
  .fc-palette-label{font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:800; margin-bottom:10px;}
  .fc-pal-item{
    display:flex; align-items:center; gap:8px; padding:9px 10px; border:1.5px dashed var(--line-2);
    border-radius:10px; margin-bottom:8px; background:var(--cloth); color:var(--ink-2); font-size:12px; font-weight:700; cursor:grab;
  }
  .fc-pal-item:hover{border-color:var(--orange); color:var(--orange-deep); background:var(--orange-tint);}
  .fc-pal-item svg{stroke:currentColor; flex:none;}
  .fc-hint{font-size:11px; color:var(--muted); line-height:1.5; margin-top:14px; padding-top:14px; border-top:1px solid var(--line);}
  .fc-zoom{display:flex; align-items:center; gap:2px; background:rgba(255,255,255,.08); border-radius:9px; padding:3px;}
  .fc-zoom button{width:26px; height:26px; border:none; background:transparent; color:#D8CFC0; border-radius:6px; font-size:15px; font-weight:700; display:flex; align-items:center; justify-content:center;}
  .fc-zoom button:hover{background:rgba(255,255,255,.14); color:#fff;}
  .fc-zoom-label{font-size:11.5px; font-weight:700; color:#D8CFC0; width:40px; text-align:center; font-variant-numeric:tabular-nums;}
  .fc-viewport{
    flex:1; overflow:auto; position:relative; cursor:grab;
    background-color:var(--cloth);
    background-image:radial-gradient(circle, var(--line-2) 1.2px, transparent 1.2px);
    background-size:22px 22px;
  }
  .fc-viewport.panning{cursor:grabbing;}
  .fc-canvas{position:relative; width:2200px; height:1300px; transform-origin:0 0;}
  .fc-svg{position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none;}
  .fc-edge{fill:none; stroke:var(--muted-2); stroke-width:2.2;}
  .fc-edge-del{
    position:absolute; width:19px; height:19px; border-radius:50%; background:var(--paper); border:1.5px solid var(--line-2);
    color:var(--muted); display:flex; align-items:center; justify-content:center; transform:translate(-50%,-50%);
    cursor:pointer; z-index:4; opacity:.55; padding:0;
  }
  .fc-edge-del svg{width:10px; height:10px;}
  .fc-edge-del:hover{border-color:var(--bad); color:var(--bad); opacity:1;}
  .fc-temp-line{fill:none; stroke:var(--orange); stroke-width:2.4; stroke-dasharray:5 4;}
  .fc-node{
    position:absolute; width:194px; background:var(--paper); border:1.5px solid var(--line); border-radius:12px;
    padding:12px 13px; box-shadow:var(--shadow-sm); cursor:grab; z-index:2;
  }
  .fc-node:active{cursor:grabbing;}
  .fc-node.selected{border-color:var(--orange); box-shadow:0 0 0 3px var(--orange-tint); z-index:3;}
  .fc-node.trigger{background:var(--ink); border-color:var(--ink); color:#fff;}
  .fc-node.condition{padding-bottom:22px;}
  .fc-node-top{display:flex; align-items:center; gap:9px; pointer-events:none;}
  .fc-node-icon{width:28px; height:28px; border-radius:8px; background:var(--orange-tint); display:flex; align-items:center; justify-content:center; flex:none;}
  .fc-node-icon svg{stroke:var(--orange-deep); width:15px; height:15px;}
  .fc-node.trigger .fc-node-icon{background:rgba(255,90,31,.22);}
  .fc-node.trigger .fc-node-icon svg{stroke:var(--orange);}
  .fc-node-label{font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:700;}
  .fc-node.trigger .fc-node-label{color:#B6AA97;}
  .fc-node-title{font-weight:700; font-size:13.5px; margin-top:1px;}
  .fc-node-del{position:absolute; top:7px; right:7px; display:none; background:transparent; border:none; color:var(--muted); z-index:4;}
  .fc-node:hover .fc-node-del{display:block;}
  .fc-node.trigger .fc-node-del{display:none !important;}
  .fc-port{
    position:absolute; width:13px; height:13px; border-radius:50%; background:var(--paper); border:2px solid var(--orange-deep);
    cursor:crosshair; z-index:5; top:50%; transform:translateY(-50%);
  }
  .fc-port:hover{background:var(--orange); transform:translateY(-50%) scale(1.25);}
  .fc-port.in{left:-7px;}
  .fc-port.out{right:-7px;}
  .fc-port.out.yes{top:30px;}
  .fc-port.out.no{top:calc(100% - 22px);}
  .fc-port-label{position:absolute; right:16px; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:var(--muted); transform:translateY(-50%);}
  .fc-port-label.yes{top:30px; color:var(--good);}
  .fc-port-label.no{top:calc(100% - 22px); color:var(--bad);}
  .fc-empty-hint{
    position:absolute; left:260px; top:60px; max-width:260px; font-size:12.5px; color:var(--muted-2); line-height:1.6;
    background:var(--paper); border:1.5px dashed var(--line-2); border-radius:12px; padding:14px 16px;
  }
  .fc-quickmenu{position:absolute; z-index:250; background:var(--paper); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow-lg); padding:8px; width:210px; display:none;}
  .fc-quickmenu.open{display:block;}
  .fc-quickmenu .group-label{font-size:10px; text-transform:uppercase; color:var(--muted); font-weight:800; padding:6px 8px 3px;}
  .fc-quickmenu button{width:100%; display:flex; align-items:center; gap:9px; text-align:left; background:none; border:none; padding:8px; border-radius:8px; font-size:12.5px; font-weight:600;}
  .fc-quickmenu button:hover{background:var(--cloth);}
  .fc-quickmenu button svg{stroke:var(--orange-deep); width:15px; height:15px; flex:none;}
  .flow-inspector{width:270px; flex:none; background:var(--paper); border-left:1px solid var(--line); padding:18px; overflow-y:auto;}

  /* wizard */
  .steps-row{display:flex; align-items:center; gap:6px; margin-bottom:20px;}
  .step-dot{display:flex; align-items:center; gap:8px; flex:1;}
  .step-dot .num{width:24px; height:24px; border-radius:50%; background:var(--cloth); border:1.5px solid var(--line-2); color:var(--muted); font-size:11.5px; font-weight:800; display:flex; align-items:center; justify-content:center; flex:none;}
  .step-dot .label{font-size:11.5px; font-weight:700; color:var(--muted); white-space:nowrap;}
  .step-dot.active .num{background:var(--orange); border-color:var(--orange); color:#fff;}
  .step-dot.active .label{color:var(--ink);}
  .step-dot.done .num{background:var(--ink); border-color:var(--ink); color:#fff;}
  .step-line{flex:1; height:2px; background:var(--line-2); margin:0 -2px;}
  .wiz-step{display:none;}
  .wiz-step.active{display:block;}

  .channel-pick{display:grid; grid-template-columns:repeat(3,1fr); gap:10px;}
  .channel-card{border:1.5px solid var(--line-2); border-radius:12px; padding:14px 10px; text-align:center; cursor:pointer; background:var(--paper);}
  .channel-card:hover{border-color:var(--orange-tint-2); background:var(--orange-tint);}
  .channel-card.picked{border-color:var(--orange); background:var(--orange-tint); box-shadow:0 0 0 3px var(--orange-tint);}
  .channel-card svg{stroke:var(--ink-2); margin:0 auto 8px;}
  .channel-card.picked svg{stroke:var(--orange-deep);}
  .channel-card .name{font-size:12px; font-weight:700;}

  .seg-option{display:flex; align-items:center; justify-content:space-between; padding:11px 13px; border:1.5px solid var(--line-2); border-radius:10px; margin-bottom:8px; cursor:pointer;}
  .seg-option:hover{border-color:var(--muted-2);}
  .seg-option.picked{border-color:var(--orange); background:var(--orange-tint);}
  .seg-option .name{font-weight:700; font-size:13px;}
  .seg-option .count{font-size:11.5px; color:var(--muted);}
  .reach-banner{margin-top:12px; background:var(--ink); color:#fff; border-radius:12px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between;}
  .reach-banner .n{font-size:22px; font-weight:800;}
  .reach-banner .l{font-size:11px; color:#B6AA97; text-transform:uppercase; letter-spacing:.05em;}

  .review-row{display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line); font-size:13px;}
  .review-row:last-child{border-bottom:none;}
  .review-row .k{color:var(--muted); font-weight:600;}
  .review-row .v{font-weight:700; text-align:right;}

  /* phone preview used in template creators */
  .phone-shell{width:230px; margin:0 auto; background:var(--ink); border-radius:34px; padding:10px; box-shadow:var(--shadow-lg);}
  .phone-screen{background:#EDEDED; border-radius:24px; height:420px; overflow:hidden; display:flex; flex-direction:column;}
  .phone-notch-bar{height:26px; background:#111; display:flex; align-items:center; justify-content:center; flex:none;}
  .phone-notch-bar .pill{width:56px; height:14px; background:#000; border-radius:10px;}
  .phone-chat-head{background:#075E54; color:#fff; padding:9px 12px; font-size:11.5px; font-weight:700; display:flex; align-items:center; gap:8px; flex:none;}
  .phone-body{flex:1; padding:12px; overflow-y:auto; background:#E7E0D3; background-image:radial-gradient(rgba(0,0,0,.02) 1px,transparent 1px); background-size:10px 10px;}
  .wa-bubble{background:#fff; border-radius:9px 9px 9px 2px; padding:9px 10px; font-size:12px; max-width:88%; box-shadow:0 1px 1px rgba(0,0,0,.08); line-height:1.45;}
  .wa-bubble b{display:block; margin-bottom:3px;}
  .wa-bubble .wa-img{width:100%; height:80px; background:var(--line-2); border-radius:6px; margin-bottom:6px; display:flex; align-items:center; justify-content:center; color:var(--muted);}
  .wa-bubble .wa-btns{margin-top:8px; border-top:1px solid var(--line); padding-top:6px; display:flex; flex-direction:column; gap:5px;}
  .wa-bubble .wa-btn{color:#00A5F4; text-align:center; font-weight:700; font-size:11.5px; padding:4px 0;}
  .wa-time{font-size:9.5px; color:var(--muted); margin-top:4px; text-align:right;}
  .sms-screen-head{background:#F5F5F5; padding:10px 12px; font-size:12px; font-weight:700; border-bottom:1px solid var(--line); flex:none; color:#111;}
  .push-card{background:rgba(0,0,0,.75); backdrop-filter:blur(6px); border-radius:14px; padding:10px 11px; color:#fff; margin:14px 8px;}
  .push-card .app-row{display:flex; align-items:center; gap:6px; font-size:9.5px; color:#cfcfcf; margin-bottom:4px;}
  .push-card .app-dot{width:13px; height:13px; border-radius:4px; background:var(--orange);}
  .push-card b{display:block; font-size:12px;}
  .push-card .body{font-size:11px; color:#ddd; margin-top:2px;}
  .rcs-card{background:#fff; border-radius:12px; overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.15); max-width:88%;}
  .rcs-card .img{height:80px; background:var(--line-2); display:flex; align-items:center; justify-content:center; color:var(--muted);}
  .rcs-card .rc-body{padding:9px 10px;}
  .rcs-card .rc-title{font-weight:700; font-size:12px;}
  .rcs-card .rc-desc{font-size:11px; color:var(--muted-2); margin-top:2px;}
  .rcs-card .rc-actions{border-top:1px solid var(--line); display:flex; flex-direction:column;}
  .rcs-card .rc-actions button{background:none; border:none; border-top:1px solid var(--line); padding:8px; font-size:11.5px; font-weight:700; color:#3457D5;}
  .rcs-card .rc-actions button:first-child{border-top:none;}

  .charcount{font-size:11px; color:var(--muted); text-align:right; margin-top:-2px;}
  .charcount.over{color:var(--bad); font-weight:700;}
  .btn-list-row{display:flex; gap:8px; align-items:center; margin-bottom:8px;}
  .btn-list-row .input{flex:1;}
  .dash-add{display:flex; align-items:center; gap:6px; color:var(--orange-deep); font-weight:700; font-size:12.5px; background:none; border:none; padding:6px 0;}

  /* integrations */
  .int-card{padding:18px; display:flex; flex-direction:column; gap:12px;}
  .int-top{display:flex; align-items:flex-start; gap:12px;}
  .int-icon{width:42px; height:42px; border-radius:11px; background:var(--ink); display:flex; align-items:center; justify-content:center; flex:none;}
  .int-icon svg{stroke:var(--orange); width:21px; height:21px;}
  .int-name{font-weight:800; font-size:14px;}
  .int-desc{font-size:12px; color:var(--muted); margin-top:2px; line-height:1.5;}
  .int-foot{display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:4px;}

  .dns-row{display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); font-size:12px;}
  .dns-row:last-child{border-bottom:none;}
  .dns-row .type{background:var(--cloth); border:1px solid var(--line); border-radius:6px; padding:2px 7px; font-weight:700; font-size:10.5px;}
  .dns-row .val{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .copybtn{background:none; border:1px solid var(--line-2); border-radius:6px; padding:3px 7px; font-size:10.5px; font-weight:700; color:var(--muted); flex:none;}
  .copybtn:hover{border-color:var(--orange); color:var(--orange-deep);}

  /* toast */
  #toastWrap{position:fixed; bottom:20px; right:20px; z-index:400; display:flex; flex-direction:column; gap:8px; align-items:flex-end;}
  .toast{background:var(--ink); color:#fff; padding:11px 16px; border-radius:10px; font-size:12.5px; font-weight:700; box-shadow:var(--shadow-lg); display:flex; align-items:center; gap:9px; animation:toastIn .18s ease-out;}
  .toast svg{stroke:var(--orange); flex:none;}
  @keyframes toastIn{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}

  .barlist{display:flex; flex-direction:column; gap:12px;}
  .barlist-row{display:flex; align-items:center; gap:12px;}
  .barlist-row .lbl{width:76px; flex:none; font-size:12px; font-weight:700; display:flex; align-items:center; gap:7px;}
  .barlist-row .track{flex:1; height:9px; background:var(--cloth); border-radius:6px; overflow:hidden;}
  .barlist-row .fill{height:100%; background:var(--orange); border-radius:6px;}
  .barlist-row .pct{width:40px; flex:none; text-align:right; font-weight:800; font-size:12.5px;}

  @media (max-width:880px){
    .sidebar{position:fixed; z-index:150; transform:translateX(-100%); transition:transform .2s; box-shadow:var(--shadow-lg);}
    .sidebar.open{transform:translateX(0);}
    .menu-btn{display:flex !important;}
    .eb-palette, .eb-inspector, .fc-palette, .flow-inspector{width:150px;}
  }
  .menu-btn{display:none; background:none; border:1px solid var(--line-2); border-radius:8px; padding:8px; margin-right:6px;}
