:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --ink:#0b1220;
  --muted:rgba(11,18,32,.65);
  --line:#e6e8f2;
  --brand:#2563eb;
  --danger:#dc2626;
  --shadow:0 10px 25px rgba(0,0,0,.06);
  --r:16px;
}

*{box-sizing:border-box}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;background:var(--bg);color:var(--ink)}
a{color:var(--brand);text-decoration:none}
.container{max-width:1180px;margin:0 auto;padding:18px}
.topbar{background:#0f172a;color:#fff;position:sticky;top:0;z-index:50}
.topbar a{color:#fff;opacity:.95}
.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:12px}
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font-size:12px}
.small{font-size:12px;color:var(--muted)}
.hr{height:1px;background:var(--line);margin:14px 0}

.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;margin:12px 0}
.m0{margin:0}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.page-actions{display:flex;gap:10px;flex-wrap:wrap}

input,select,button,textarea{font:inherit;padding:10px 12px;border:1px solid #d7dbe7;border-radius:14px;background:#fff}
select{width:100%}
button{cursor:pointer;background:var(--ink);color:#fff;border:none;padding:10px 14px;border-radius:14px}
button.secondary{background:#fff;color:var(--ink);border:1px solid #d7dbe7}
button.ghost{background:#fff;color:var(--ink);border:1px solid transparent}
button.ghost:hover{border-color:#d7dbe7}
button.danger{background:var(--danger)}
button:disabled{opacity:.5;cursor:not-allowed}

.kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#f1f5ff;border:1px solid #dfe6ff;padding:3px 8px;border-radius:999px;font-size:12px}
.pill{display:inline-flex;align-items:center;gap:6px;background:#f5f6ff;border:1px solid #e6e8ff;padding:4px 10px;border-radius:999px}

.callout{border:1px solid var(--line);background:#fbfbff;border-radius:14px;padding:12px}
.callout.warn{border-color:#fde68a;background:#fffbeb}

.blocks{display:flex;flex-direction:column;gap:12px}
.block{border:1px solid var(--line);border-radius:18px;background:#fbfbff;overflow:hidden}
.block-top{display:flex;gap:12px;padding:12px;border-bottom:1px solid var(--line);background:linear-gradient(0deg,#fbfbff, #ffffff)}
.block-drag{width:34px;min-width:34px;border-radius:12px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:rgba(11,18,32,.5);cursor:grab;user-select:none}
.block-drag:active{cursor:grabbing}
.block-top-main{flex:1;min-width:260px}
.block-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.prio{width:44px;min-width:44px;height:34px;border-radius:12px;background:#eef2ff;border:1px solid #dfe6ff;display:flex;align-items:center;justify-content:center;font-weight:700;color:#3730a3}
.block-name{flex:1;min-width:220px}
.spacer{flex:1}
.hook{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.block-sub{margin-top:6px}

.builder{display:grid;grid-template-columns: 1.4fr 1fr .8fr;gap:12px;padding:12px}
.builder.builder-4{grid-template-columns:1.2fr .8fr .8fr 1fr}
@media (max-width: 980px){
  .builder,.builder.builder-4{grid-template-columns:1fr}
}

.panel{border:1px solid var(--line);border-radius:16px;background:#fff;display:flex;flex-direction:column;min-height:340px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}
.panel-title{font-weight:700}
.panel-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.panel-search{padding:10px 12px;border-bottom:1px solid var(--line)}
.panel-search input{width:100%}
.panel-body{padding:10px 12px;overflow:auto;max-height:420px}
.panel-body.tree{padding:8px 10px}

.tree details{border:1px solid #eef0fb;border-radius:14px;background:#fbfbff;margin-bottom:10px;overflow:hidden}
.tree summary{cursor:pointer;list-style:none;padding:10px 12px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.tree summary::-webkit-details-marker{display:none}
.sum-title{font-weight:600}
.tree-items{padding:8px 10px;border-top:1px solid #eef0fb;display:flex;flex-direction:column;gap:8px}

.chk{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:12px}
.chk:hover{background:#f6f7ff}
.chk input{margin-top:3px}
.chk-text{line-height:1.25}

.actions{display:flex;flex-direction:column;gap:10px}
.toggle{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fbfbff}
.toggle:hover{background:#f6f7ff}

.hint{border:1px dashed #d7dbe7;border-radius:14px;padding:10px 12px;background:#fff}

.block-savebar{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px;border-top:1px solid var(--line);background:#ffffff}

.toast{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%) translateY(12px);
  background:#111;color:#fff;padding:10px 12px;border-radius:14px;opacity:0;pointer-events:none;
  transition:all .2s ease; z-index:9999;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* schedule */
.schedule .day-head{
  display:grid;grid-template-columns:1.1fr .9fr .9fr .9fr .9fr .6fr;
  gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:#fff;font-weight:700;
}
.schedule .day-body{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.day-row{
  display:grid;grid-template-columns:1.1fr .9fr .9fr .9fr .9fr .6fr;
  gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:#fff;
}
.day-cell input{width:100%}
.day-date .day-d{font-weight:700}
.day-actions{display:flex;align-items:flex-end}
@media (max-width: 980px){
  .schedule .day-head{display:none}
  .day-row{grid-template-columns:1fr}
  .day-actions{justify-content:flex-start}
}
