/* static/css/swot_prompt_tool.css */

.swp-panel{
  position:relative;
  margin:2.5rem 0;
  padding:2.5rem;
  background:linear-gradient(180deg,#eef4ff 0%,#fbfcff 100%);
  border:.0625rem solid #d3e2fa;
  border-radius:1.5rem;
  box-shadow:0 .75rem 2.5rem rgba(0,0,0,.08);
}

.swp-lead-box{
  text-align:center;
  margin:0 0 2rem;
}

.swp-lead-box__label{
  display:inline-block;
  width:fit-content;
  margin:0 auto .85rem;
  padding:.6rem 2rem;
  border-radius:999rem;
  background:#3468e0;
  color:#fff;
  font-size:1.3rem;
  font-weight:700;
  letter-spacing:.04em;
  box-shadow:0 0 0 0 rgba(52,104,224,.45);
  animation:swp-badge-pulse 2.2s ease-out infinite;
}

@keyframes swp-badge-pulse{
  0%{ box-shadow:0 0 0 0 rgba(52,104,224,.45); }
  70%{ box-shadow:0 0 0 .55rem rgba(52,104,224,0); }
  100%{ box-shadow:0 0 0 0 rgba(52,104,224,0); }
}

.swp-lead-box p{
  margin:0;
  color:#1f2937;
  font-size:.95rem;
  font-weight:600;
  line-height:1.8;
}

.swp-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1rem 1.25rem;
  margin-bottom:1.5rem;
}

.swp-field{
  display:flex;
  flex-direction:column;
  gap:.4rem;
}

.swp-field--wide{
  grid-column:1 / -1;
}

.swp-quad-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem 1.25rem;
}

@media (min-width:48rem){

  .swp-quad-grid{
    grid-template-columns:1fr 1fr;
  }

}

.swp-field label,
.swp-field__label{
  color:#1f2937;
  font-size:.85rem;
  font-weight:700;
}

.swp-field select,
.swp-field input[type="text"]{
  width:100%;
  padding:.65rem .75rem;
  background:#fff;
  border:.0625rem solid #dce6f5;
  border-radius:.75rem;
  color:#1f2937;
  font-size:.95rem;
  box-sizing:border-box;
}

.swp-tag-field{
  display:flex;
  flex-direction:column;
  gap:.5rem;
}

.swp-tag-input-row{
  display:flex;
  gap:.5rem;
}

.swp-tag-input-row input[type="text"]{
  flex:1 1 auto;
  min-width:0;
}

.swp-competitor-row{
  display:flex;
  gap:.5rem;
}

.swp-competitor-row input[type="text"]{
  flex:1 1 auto;
  min-width:0;
}

.swp-competitor-row .swp-tag-add{
  flex:0 0 auto;
}

@media (max-width:30rem){

  .swp-competitor-row{
    flex-wrap:wrap;
  }

  .swp-competitor-row input[type="text"]{
    flex:1 1 45%;
  }

  .swp-competitor-row .swp-tag-add{
    flex:1 1 100%;
  }

}

.swp-tag-add{
  flex:0 0 auto;
  padding:0 1.1rem;
  background:#3468e0;
  border:none;
  border-radius:.75rem;
  color:#fff;
  font-size:.9rem;
  font-weight:700;
  cursor:pointer;
  transition:opacity .2s ease;
}

.swp-tag-add:hover{
  opacity:.9;
}

.swp-tag-add:disabled{
  opacity:.5;
  cursor:not-allowed;
}

.swp-field-note{
  display:block;
  margin-top:-.15rem;
  color:#6b7280;
  font-size:.78rem;
  line-height:1.5;
}

.swp-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top:.6rem;
}

.swp-tags:empty{
  display:none;
}

.swp-tag{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.4rem .5rem .4rem .85rem;
  background:#eef4ff;
  border:.0625rem solid #b9d7fb;
  border-radius:999rem;
  color:#1f2937;
  font-size:.85rem;
  font-weight:600;
}

.swp-tag__remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.25rem;
  height:1.25rem;
  background:#fff;
  border:none;
  border-radius:999rem;
  color:#3468e0;
  font-size:.85rem;
  line-height:1;
  cursor:pointer;
}

.swp-tag__remove:hover{
  background:#dce6f5;
}

.swp-chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

.swp-chip{
  position:relative;
  display:inline-flex;
  align-items:center;
  padding:.45rem .9rem;
  background:#f5f9ff;
  border:.0625rem solid #dce6f5;
  border-radius:999rem;
  color:#1f2937;
  font-size:.85rem;
  font-weight:600;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}

.swp-chip input{
  position:absolute;
  width:.0625rem;
  height:.0625rem;
  opacity:0;
  pointer-events:none;
}

.swp-chip:hover{
  border-color:#b9d7fb;
}

.swp-chip.is-checked{
  background:#3468e0;
  border-color:#3468e0;
  color:#fff;
}

.swp-button-wrap{
  display:flex;
  justify-content:center;
  margin-top:2rem;
}

.swp-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20rem;
  padding:.95rem 1.8rem;
  border:none;
  border-radius:999rem;
  background:#3468e0;
  color:#fff;
  font-size:1rem;
  font-weight:700;
  line-height:1.4;
  cursor:pointer;
  box-shadow:0 .625rem 1.125rem rgba(52,104,224,.25);
  transition:transform .2s ease,opacity .2s ease;
}

.swp-button:hover{
  transform:translateY(-.0625rem);
  opacity:.98;
}

.swp-notice{
  margin:1rem 0 0;
  color:#6b7280;
  font-size:.85rem;
  line-height:1.7;
  text-align:center;
}

.swp-error{
  margin-top:1.5rem;
  padding:1rem 1.25rem;
  background:#fef2f2;
  border:.0625rem solid #fecaca;
  border-radius:.75rem;
  color:#b91c1c;
  font-size:.95rem;
  line-height:1.7;
}

.swp-result{
  position:relative;
  margin-top:2.5rem;
  padding:2rem 1.5rem 1.5rem;
  background:#fff;
  border:.125rem dashed #a9c3f5;
  border-radius:1.35rem;
  box-shadow:0 .5rem 1.25rem rgba(30,41,59,.05);
}

.swp-result__badge{
  position:absolute;
  top:-.85rem;
  left:1.5rem;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  padding:.3rem .85rem;
  background:#3468e0;
  color:#fff;
  border-radius:999rem;
  font-size:.75rem;
  font-weight:700;
  white-space:nowrap;
  box-shadow:0 .25rem .625rem rgba(52,104,224,.3);
}

.swp-textarea{
  width:100%;
  padding:1rem 1.1rem;
  background:#f8fbff;
  border:.0625rem solid #dce6f5;
  border-radius:.9rem;
  color:#1f2937;
  font-size:.85rem;
  line-height:1.8;
  font-family:inherit;
  resize:vertical;
  box-sizing:border-box;
}

.swp-result-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  margin-top:1.25rem;
}

.swp-copy-btn{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  margin:0;
  padding:.6rem 1.4rem;
  background:#3468e0;
  border:.0625rem solid #3468e0;
  border-radius:999rem;
  color:#fff;
  font-weight:700;
  cursor:pointer;
  transition:opacity .2s ease;
}

.swp-copy-btn:hover{
  opacity:.9;
}

.swp-restart{
  display:block;
  margin:0;
  padding:.6rem 1.4rem;
  background:transparent;
  border:.0625rem solid #3468e0;
  border-radius:999rem;
  color:#3468e0;
  font-weight:700;
  cursor:pointer;
}

.swp-result-hint{
  margin:.75rem 0 0;
  text-align:center;
  color:#1c9c5f;
  font-size:.85rem;
  font-weight:700;
  min-height:1.2em;
}

@media (max-width:48rem){

  .swp-panel{
    padding:1.25rem;
  }

  .swp-grid{
    grid-template-columns:1fr;
  }

  .swp-button{
    width:100%;
    min-width:auto;
  }

  .swp-result{
    padding:1.75rem 1rem 1rem;
  }

}
